-
表达式查看全部
-
类型检测: ①constructor:任何对象都有一个constructor属性,继承自原型,constructor指向构造这个对象的构造器/构造函数,constructor是可以改写的,所以使用时要小心 ②duck type:通过一些特征来判断对象类型(自己查询了解) 类型检测小结: ①typeof:适合基本类型及function检测,遇到null失效 ②Object.prototype.toString:通过{}.toString拿到,适合内置对象和基本类型,遇到null和undefined失效(IE6/7/8等返回[object Object]) ③instanceof:适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时会失效查看全部
-
VO填充顺序:参数->函数(命名冲突会覆盖)->变量(命名冲突会忽略)查看全部
-
类型检测:Object.prototype.toString Object.prototype.toString.apply([]); === "[object Array]";//判断是否是数组 Object.prototype.toString.apply(function(){}); === "[boject Function]"; Object.prototype.toString.apply(null); === "[object Null]"; Object.prototype.toString.apply(undefined); === "[object undefined]"; 注意兼容性问题:IE6/7/8,Object.prototype.toString.apply(null);返回"[object Object]"查看全部
-
类型检测:typeof 返回一个字符串,适合函数对象和基本类型的判断 typeof 100 // "number" typeof true //"boolean" typeof function //"function" typeof newObject() //"object" typeof [1,2] //"object",注意!数组也是对象!!! typeof NaN //"number",和无穷Infinity都是特殊的数字类型 typeof null // "object",为了兼容和历史原因,返回类型为object,特殊!查看全部
-
类型检测:instanceof ①用于判断对象类型,基于原型链判断,左操作数必须是一个对象,否则直接返回false,右操作数必须是一个函数对象/函数构造器,都则会抛出异常 ②原理:判断左操作数对象的原型链上是否有右边构造函数上的prototype属性,任何构造函数都会有一个prototype对象属性 [1,2]instanceof Array === true //[1,2]instanceof Array构造器,返回true new Object()instanceof Array === false//空对象返回false 注意!不同window或iframe间的对象类型检测不能使用instanceof!!!查看全部
-
原始类型包装=》调用方法=》销毁(ToString(),length)查看全部
-
先判断类型,在判断值“===”查看全部
-
包装对象: 5原始类型(number、string、boolean、null、undefined)中,前三种都有对应的包装类型 var str = "string";//原始字符串类型 var str = new String("string");//对象类型,并且是string类型对应的包装类 当给一个原始类型添加属性时,js会智能的把基本类型转换为对应的包装类型对象,相当于new了一个string var a = "string";//声明一个变量储存原始类型 alert(a.length);//6 a.t = 3;//给原始类型添加一个属性t alert(a.t);//undefined 当a.length、a.t返回或设置以后,这个临时对象会被销毁掉,所以a.t赋值为3以后再去输出a.t返回undefined 除了string以外,number和boolean也是一样的 (1,2,3).toString//一样可以转换为字符串,也是类似的原理 包装对象,就是当基本类型以对象的方式去使用时,JavaScript会转换成对应的包装类型,相当于new一个对象,内容和基本类型的内容一样,然后当操作完成再去访问的时候,这个临时对象会被销毁,然后再访问时候就是undefined,JS中number、string、boolean都有对应的包装属性查看全部
-
str是string(基本类型),本身是没有方法的。 当尝试把基本类型的str当做对象一样访问时,例如:str.length; 解释器会创建一个临时的包装对象,伪代码: [[tempObj]] = new String(str); [[tempObj]].length; // 返回具体的length; delete [[tempObj]]; // 销毁临时对象 重复访问str.length会重复创建这个临时对象。 所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不同的。查看全部
-
1.Js中没有块级作用域 2.function test(){<br> var a=b=1;<br> }<br> test();<br> console.log(typeof a);//undefined;<br> console.log(typeof b);//number;<br> <br> 隐式创建了全局变量b.<br> 应该改成var a=1,b=1;查看全部
-
运算符优先级查看全部
-
new 运算符查看全部
-
forEach 数组遍历,ES5,ie9+,不改变原数组; map,数组中的元素作一些映射不改变原数组; filter,对数组进行过滤不改变原数组; every ,每一个元素都要符合一个条件; some,某个元素符合一个条件; reduce.数组两两进行一些操作,得到一个统一的值,reduceRight,是从右到左(数组值相加) indexOf,数组的检索,返回的是数组的下标,lastIndexOf,从右向左; /isArray判断一个对象是否为数组(还有[]instanceof Array)查看全部
-
javaScript六种数据类型:number 、string、Boolean、null 、undefined查看全部
举报
0/150
提交
取消