自建营销型网站模板,做网站必须网站备案,网站建设的公司工作室,教育网站设计方案一. 数据类型#xff1a; 1. undefined#xff1a; 未声明和未初始化的变量#xff0c;typeof 操作符返回的结果都是 undefined#xff1b;#xff08;建议未初始化的变量进行显式赋值#xff0c;这样当 typeof 返回 undefined 时就知道是未声明了#xff0c;帮助定位问…一. 数据类型 1. undefined 未声明和未初始化的变量typeof 操作符返回的结果都是 undefined建议未初始化的变量进行显式赋值这样当 typeof 返回 undefined 时就知道是未声明了帮助定位问题 2. null建议将即将保存但还未真正保存对象的变量赋值为 null 3. number 保存浮点数需要的内存空间是保存整数值的两倍因此 ECMAScript 会不失时机的将浮点数值转换为整数值 4. NaN isNaN() 用于确定其参数是否“不是数值”eg isNaN(blue) —— true 因为不是数值 附 typeof 可以判断的类型undefined/boolean/string/number/function 5. parseInt() 第二个参数可以指定进制使参数按照指定进制转换如不指定进制则按照十进制转换 parseFloat() 只解析十进制值他没有第二个参数指定基数的用法 6. 转换为字符串 toString() 和 String()null 和 undefined 没有 toString() 方法 String() 可将任何类型的值转换为字符串 转换规则如下 如果值有 toString() 方法则调用该方法没有参数并返回相应的结果 —— 如果值是 null则返回 “null” —— 如果值是“undefined” 则返回“undefined” 7. 前 和后 前和前--egvar age 28 --age//28--age相当于 age age - 1age与--age整体的值也会变 后和后--eg var num1 2;
var num2 20;
var num3 num1-- num2; //22 age的值减1age--整体的值不会变
var num4 num1 num2; //21 8. 位运算符 可以提高性能详见收藏 9. 和 比较 null 与 undefined 时不能将它俩转换为任何值 10. switch语句switch语句在比较值时使用的是全等操作符因此不会发生类型转换如“10” 不等于 10 二. 变量、作用域和内存问题 1. 函数传参参数只能按值传递当参数为基本数据类型时直接进行复制操作当参数为引用数据类型时将引用地址进行复制给形参如果在函数内部重新对引用类型的参数进行赋值此时修改的引用变量参数为局部变量这个局部的引用对象会在函数执行完毕后立即被销毁传参是复制不能理解为是实参替换形参函数参数也被当作变量来对待因此其访问规则与执行环境中的其他变量相同(局部变量作用域链)。 2. 执行环境及作用域 1延长作用域链虽然执行环境的类型总共只有两种——全局和局部函数但还是有其他办法来延长作用域链。这么说是因为有些语句可以在作用域链的前端临时增加一个变量对象该变量对象会在代码执行后被移除。在两种情况下会发生这种现象。具体来说就是当执行流进入下列任何一个语句时作用域链就会得到加长try-catch 语句的 catch 块with 语句。 这两个语句都会在作用域链的前端添加一个变量对象。对 with 语句来说会将指定的对象添加到作用域链中。对 catch 语句来说会创建一个新的变量对象其中包含的是被抛出的错误对象的声明。 2垃圾回收机制 标记清除”是目前主流的垃圾收集算法这种算法的思想是给当前不使用的值加上标记然后再回收其内存。 解除变量的引用不仅有助于消除循环引用现象而且对垃圾收集也有好处。为了确保有效地回收内存应该及时解除不再使用的全局对象、全局对象属性以及循环引用变量的引用。 转载于:https://www.cnblogs.com/momo798/p/7677220.html