Skip to content

Sticky Footer #2

@TongtongGitHub

Description

@TongtongGitHub
  1. JS组成:核心ECMAScript,文档对象模型DOM,浏览器对象模型BOM。
  2. 元素,在不支持或者禁用js的浏览器中显示替代内容。
  3. 语法:
  • JS一切变量,函数名,操作符等都区分大小写。
  • "use strict"指示编译器使用严格模式。
  • 推荐每行后面加";"。
  • 推荐每个函数都加大括号。
  1. 函数内定义的变量是局部变量无法在函数外访问,但是如果不是用var关键字,变量默认为全局变量,可以在外部访问,但不建议这样使用。
  2. JS共有五种简单数据类型和一种复杂数据类型Object:
  • Undefined 只有“undifined”一个值,使用var声明变量但没有初始化,会自动付给undefined值。
  • Null 只有“null”一个值。null值表示一个空对象指针,因此“typeof”检测 null 值会返回 object 类型。将变量初始化为null,使用时用这个变量保存一个对象。检查这个变量有没有保存对象,只需要判断是否为null。
  • Boolean
  • Number 浮点数内容占用空间是整数的两倍,因此小数点没有数字后者数字为0会自动转换为整数。极大或者极小的数字使用e表示法。3.125e7 = 31250000。3e-7 = 0.0000003。JS等符合IEEE-754标准的语言,浮点数精度都存在问题,因为有些小数无法用二进制精确表示。因此:1.0-0.9 == 0.1是 false。0.1 + 0.2 == 0.3 是 false。使用toFixed(digits) 方法设置精度可以解决问题:parseFloat((0.1 + 0.2).toFixed(10)) 输出结果为0.3。NaN是一个特殊的数值,表示一个本来要返回数值的操作未返回数值类型。isNaN()。
  • String
  • Object JS对象就是一组数据和功能的集合,通过new操作符和对象类型来创建。所有Object实例都会继承Object的属性和方法。
  1. === !== 会比较数值和类型。
  2. label 语句,用的比较少。with语句不建议使用。
  3. 函数的参数内部使用数组表示。可以不是用命名的参数而使用arguments对象访问这个数组。由于函数没有签名,因此无法真正的重载,如果定义两个相同的函数,后者会覆盖前者。
  4. 基本数据类型值是指简单数据段,而引用数据类型值指的是对象,后者可以添加删除属性和方法。引用类型数据的值实际上是一个指针,var obj1 = new Object(); var obj2 = obj1; 两个变量指向同一个对象,改变其中一个变量,另一个也会改变。
  5. 函数的参数都是按值传递的,传递基本数据类型的值时,被传递的值会被赋值给一个局部变量。当对象作为参数时,函数会将对象的值,也就是指针复制给这个局部对象,虽然是按值传递,但是两个变量指向同一个对象,改变内部局部变量也会改变外部对象。
          function setName(obj){
               obj.name = "a";
               obj = new Object();
               obj.name = "b";
          }
          var person = new Object();
          setName(person);
          alert(person.name); // 输出a
      obj变量和person是两个变量,当obj指向一个新的变量时,操作将不再影响外部变量,因此参数是按值传递的。
  1. JS只有全局作用域和函数内部局部作用域哦,没有块级作用域(if,for等语句没有单独作用域,都属于函数作用域哦)。因此for循环内部的变量可以在for循环外部访问。
          for( var i = 0; i < 10; i++) {
              ....
          }
          alert( i ); //输出 10
  1. 局部变量当函数结束时后自动被垃圾收集,全局变量可以设置为null,然后被垃圾回收,这样可以有效的回收内存。
  2. 定义对象有两种方式,new Object() 和var person = { name: "a", age: 12 };

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions