一些解释

防止赋空值

var jier = prefferdObject || backupObject;

如果prefferdObject是null,则后者值赋给jier,否则前者赋值。

//利用逻辑或的特性防止赋null 或undefined

比较值

var a = "23"  < "3";//true比较的是字符串字符编码,“2”的字符编码是50,“3”的是51

var a = "23" <  3;//false

传参数

function sum(){

 return arguments[0] + arguments[1] + arguments[2];

}

var j = sum(1,2,3);//6

JS函数参数通过包含0个或多个值的数组形式传递的,所以不在乎参数类型和数量,可通过arguments来访问参数。但不能超过传参数量,如sum(1,2)即少传一个参数会报NaN

只能给引用类型动态的添加属性

var jj = new Object();

jj.name = "Mike";

alert(jj.name);

复制变量值

基本类型复制的是值,引用类型复制的是指向同一个对象的指针。

var a = 3;

var b = a;//a值改变b值不受影响

var a = new Object();

a.name = "Miek";

var b = a;

a.name = "Jsjio";//此时b.name值也改变

检测数据类型

基本类型 typeof "ji";

判断引用类型是哪一种引用类型 person instanceof Object; animals instanceof Array;//person是Object吗。返回true/false

变量访问

if(true){// if 语句中的变量声明会将变量添加到当前的执行环境(在这里是全局环境)中

var ji = "abc";

} alert(ji); //正常执行


function add(num1,num2){

var sum = num1 + num2;//未用var声明将成为全局变量,声明了将变量添加到当前环境中,这里最接近的是函数环境

return sum;

}

add(3,2);

alert(sum); // 会报错

你可能感兴趣的:(一些解释)