zoukankan      html  css  js  c++  java
  • web基础笔记

    浏览器渲染页面的过程

    浏览器渲染页面前需要先构建 DOM 和 CSSOM 树。因此,我们需要确保尽快将 HTML 和 CSS 都提供给浏览器。

    参考:https://developers.google.com/web/fundamentals/performance/critical-rendering-path/constructing-the-object-model

    ECMA Script 与 JavaScript

    JavaScript = ECMA Script + DOM + BOM

    分号

    因为js是解释型的语言,解释器会逐行执行,所以分号不是必须的。

    如果在别人的代码后增加内容,一个小trick是以分号开头,避免被前面的代码影响。

    // 如:
    a = b
    (function(){
    ...
    })()
    
    // 会被解释为 a = b(function(){...})()
    // 其实,本意应该是
    
    a = b
    ;(function(){
    ...
    })()

    JavaScript 基本数据类型

    var x;               // x 为 undefined
    var x = 5;           // 现在 x 为数字
    var x = "John";      // 现在 x 为字符串
    
    var x = true; // x为布尔值
    
    var cars = new Array(); // cars 是数组
    cars[0] = "Saab";
    cars[1] = "Volvo";
    cars[2] = "BMW";
    cars[4] = "QQ";  // cars[3] = undefined
    
    // person 是对象
    var person={
    firstname : "John",
    lastname  : "Doe",
    id        :  5566
    };

    js的阻塞加载

    js脚本最好放在html的尾部,并且使用defer标签等手段,使js脚本在DOM完成后再生效。

    1. js下载会阻塞网页的渲染,影响用户体验。
    2. 资源的下载受网络延时影响,如果js下载完毕就执行,无法获取对应的DOM,会引发错误。

    一个较为简单的解决办法:

    window.onload=function(){
      document.getElementById("bg").style.backgroundColor="#F90";
    }

      

    js的闭包

    var add = (function () {
        var counter = 0;
        return function () {return counter += 1;}
    })();

    第一个匿名函数的关闭使得counter变量只能通过add() 访问。

    js的闭包可以认为是在函数里面定义私有成员。

  • 相关阅读:
    Android模拟器访问本地的localhost失败及解决方案
    CSS3 @font-face使用实例
    Web字体库下载及转换工具
    Web中常用字体介绍(转)
    CSS3 @font-face详细用法(转)
    HTML5 Canvas Text文本居中实例
    HTML5 Canvas Text实例1
    Html5 Canvas Text
    Wpf Hyperlink超链接控件使用
    MVC使用Exception过滤器自定义处理Action的的异常
  • 原文地址:https://www.cnblogs.com/kinsang/p/7042535.html
Copyright © 2011-2022 走看看