JS高程设计学习笔记
各种数据类型及其对应的转换规则 数据类型 转换为true的值 转换为false的值 Boolean ture false String 任何非空字符串 ""(空字符串) Num ber 任何非零数字值(包括无穷大) 0和NaN object 任何对象 null Undefined n/a undefined Number() 和 parseInt(),parseFloat()的区别 Number()可以用于任何数据类型,(具体规则太多,在此不细说) parseInt()专门用于把字符串转成数值,它还可以有第二个参数:转换时使用的基数(即多少进制) (这个也有很多规则,) parseInt("0xAF") == parseInt("AF",16) parseFloat()和parseInt()的区别 parseFloat()会始终忽略前导的0,且只会解析遇到的第一个小数点,第二个小数点后面的字符串会被忽略 String和toString在使用中的区别 null和undefined没有toString的方法, object类型 Object的每个实例都具有下列属性和方法;(只列举常用的) 1,constructor:保存着用于创建当前对象的函数; 2,isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型; 3,toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应; 4,toString():返回对象的字符串表示; 5,valueOf();返回对象的字符串,数值或者布尔值表示。通常与toString()方法的返回值相同 函数中的参数 命名的参数只提供便利,但不是必须的。 function doAdd() { if(arguments.length ==1 ) { alert(argument[0] +10); } else if () { alert(arguments[0] + arguments[1]); } } doAdd(10); 20 doAdd(30,20); 50 复制变量值的过程 var obj1 = new Object(); var obj2 = obj1; obj1.name = Bob; console.log(obj2.name) //Bob 首先: obj1保存了一个对象的新实例, 然后: 这个值被复制到obj2中,但是obj1和obj2都指向同一个对象; 所以:当为一个添加属性后,另外一个也可以访问这个属性 传递参数 如果参数是基本类型的值,被传递的值会复制给一个局部变量。 Example: function addTen(num) { num++; return num; } var count = 20; va result = addTen(count); alert(count); //20 如果参数是引用类型的值,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反应在函数的外部。 Example: function setName(obj) { obj.name = "jams" } var person = new Object(); setName(person); alert(parson.name); //’jams‘ 如何延长作用域链 with语句和try-catch语句的catch块; with语句的用法: var a = location.ab; var b = location.bc; var c = location.cd; 就等与 with(location) { var a = ab; var b = bc; var c = cd; }