各种数据类型及其对应的转换规则
数据类型 转换为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;
}