-
call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向。因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。 function cat(){ } cat.prototype={ food:"fish", say: function(){ alert("I love "+this.food); } } var blackCat = new cat; blackCat.say(); 但是如果我们有一个对象whiteDog = {food:"bone"},我们不想对它重新定义say方法,那么我们可以通过call或apply用blackCat的say方法:blackCat.say.call(whiteDog);查看全部
-
创建函数的三种方式及不同查看全部
-
《精通正则表达式》查看全部
-
没有块级作用域查看全部
-
str是string(基本类型),本身是没有方法的。 当尝试把基本类型的str当做对象一样访问时,例如:str.length; 解释器会创建一个临时的包装对象,伪代码: [[tempObj]] = new String(str); [[tempObj]].length; // 返回具体的length; delete [[tempObj]]; // 销毁临时对象 重复访问str.length会重复创建这个临时对象。 所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不同的。查看全部
-
NaN != NaN查看全部
-
Array.prototype.join//将数组转换为字符串 Array.prototype.reverse//将数组逆序 Array.prototype.sort//排序。默认按照字母顺序排序 Array.prototype.concat//合并数组,原来的数组并未修改 Array.prototype.slice//返回部分数组.负数索引表示倒数从后往前的 Array.prototype.splice//数组拼接。删除从某个位置的片段同时也可以去添加元素查看全部
-
数组元素的增删 arr.push(); 在数组的末尾添加一个元素 /arr[arr.length]=x; arr.unshift();在数组的第一个元素之前添加一个元素 delete arr[2]; 删除数组指定的元素,实际上是将指定的元素用 undefined 代替 arr.pop(); 删除数组最后一个元素 / arr.length-=1; arr.shift();在数组的头部删除一个元素查看全部
-
看了别人的代码之后改的查看全部
-
关于==: null == undefined number == string 先把sting转换为数字在进行比较,1 == '1.0' //true boolean == ? 布尔值跟任何值(不包括布尔)作比较,都先把布尔值转换为数字类型再进行比较,true => 1,false => 0. 1 == true //true object == number | string,对象跟数字或者字符串做比较时,先尝试把对象转换为基本类型,再进行比较,new String("hi") == 'hi' //true, 对象跟其它类型的比较都为false查看全部
-
途中的比较运算会发生隐式类型转换,类如"1.23" == 1.23时,字符串"1.23"会先转换为数字1.23,在进行比较查看全部
-
把一个变量转换为数字类型:num - 0, 把一个变量转换为字符串类型:num + ''查看全部
-
sad查看全部
-
js中数组排序查看全部
-
!=undefined 表示,!== undefined 或者 !==null。查看全部
举报
0/150
提交
取消