JavaScript 高程

    xiaoxiao2021-03-25  126

    1.数据类型:a.Undefined:未定义

                           b.Null:空对象指针 var car=null;

    alert(typeof car);//”object“

           c.Boolean:true 与false 与数字值不是一回事,true不一定等于1,false不一定等于0;

           d.Number:八进制需要先导零(070,072);十六进制也需要(0xA,0x1f);浮点数;数值范围:超出范围的值将会被转换为±Infinity(±Infinity无法参与计算);  NaN:非数值,与任何值都不相等(包括本身),涉及NaN的操作也都会返回NaN;

           e.String:

           f.Object:其实例都具有下列属性和方法:constructor,hasOwnProperty(PropertyName),isPrototypeof(Object),propertyIsEnumerable(propertyName), toString(),valueOf();

    2.函数:对传进来的参数的类型和个数都不会做约束,都存放在了arguments里面,可以像数组一样去访问(但并不是Array的一个实例),且所有传递的参数都是以值进行传递的,ECMAScript函数没有重载;

    3.执行环境和作用域:每个执行环境都有一个与之关联的变量对象;执行环境定义了变量或函数有权访问的其他数据;每个函数在被调用的时候都会创建一个自己的执行环境,当代码在一个环境中执行时,会创建由变量对象构成的一个作用域链。作用域链的前端,始终都是当前执行的代码所在环境的变量对象。

    延长作用域链:try-catch的catch块和with语句;

    没有块级作用域:if(){}和for(;;){}以及while(){}的花括号领域不会创建一个作用域,会放在当前的执行环境的变量对象,属于作用域链的前端;声明变量不用var时会使得变量成为全局变量;查询变量时会从作用域链的前端逐级往上查找;

    4.引用类型:

    ————未完待续

    转载请注明原文地址: https://ju.6miu.com/read-3794.html

    最新回复(0)