-
arr.slice()查看全部
-
a.sort()可传入排序参数,arr.sort(function(a,b){return a-b;})以升序排列,arr.sort(function(a,b){return b -a;})以降序排序查看全部
-
function Foo(){} typeof Foo.prototype;//"object" Foo.prototype.x = 1; var obj3 = new Foo(); Foo函数有一个prototype的对象属性,它的作用是在当使用 new Foo()去构造父的实例时,Foo.prototype属性会作为new(构造)出来的对象的原型。prototype和原型是两回事,prototype是函数对象上预设的对象属性,而原型通常是obj3对象上的原型,指向构造器的prototype属性。查看全部
-
不同场景下,this的值查看全部
-
函数声明、函数表达式、函数构造器查看全部
-
VO按照如下顺序填充: 1.函数参数(若未传入,初始化该参数为undefined) 2.函数声明(若发生命名冲突,会覆盖)——函数声明提升的原因 3.变量声明(初始化变量值undefined,若发生命名冲突,会忽略) 在全局作用域下,函数声明和变量声明会被前置到全局执行上下文(执行环境)中。 在浏览器环境下,当this表示全局对象时,this就指window对象 匿名函数,加上括号就变成了函数表达式,再加个括号,就变成了立即执行函数... 同一个函数,被调用多次的话,每次调用函数时都会有独立的执行上下文,每个执行上下文环境都会记录各自的变量参数等信息。查看全部
-
JS中没有块级作用域的概念 Function的方法来创建函数,函数里面访问不到当前作用域的变量,可以访问到全局作用域的变量 JS 中是没有块级作用域的 for(var i =1;i<3;i++){var b = 5;} 这样的写法 i 和 b 都是全局的变量查看全部
-
typeof 需要操作的数; 适合基本类型及function检测,遇到null失效 Object.prototype.toString.apply(需要操作的数); 合适内置对象和基元类型,在IE678中,遇到null和undefined失效。 obj instanceof Object;适合自定义对象(Person、Student等自定义对象),也可以用来检测原生对象,在不同iframe和window间检测时失效。查看全部
-
如果要判断一个数组是否是数组。如何? var a=[1,2]; typeof a;//返回的将是Object,这只能判断a是一个对象,而我们要进一步确定a是一个数组。 如下: Object.prototype.toString.apply(a);将会返回"[Object Array]" 同理, var b=123; Object.prototype.toString.apply(b);将会返回"[Object Number]" 再比如: var c=null; Object.prototype.toString.apply(c);将会返回"[Object Null]" 同理, var d=undefined; Object.prototype.toString.apply(d);将会返回"[Object Undefined]" 这种方法一般用以判断函数或者对象!查看全部
-
类型检测: typeof instanceof Object.prototype.toString constructor duck type typeof [1,2] ==="Object" typeof 123 ==="Number" ... obj instanceof Object //instanceof左操作数是一个对象(否则直接返回false),右操作数是一个函数对象,或函数构造器,否则会抛出type error exception。原理是判断obj对象的原型链上是否含有右侧构造函数的prototype属性。 var p=new Person(); var s=new Student(); 那么s.proto指向Student.prototype,而Student.prototype指向Person.prototype;所以,s.proto也会指向Person.prototype。因此,s instanceof Person返回的是true。查看全部
-
等于:== "1.23"==1.23 //是正确的,javascript会尝试将字符串变成数字。 0==false //也是正确的,javascript也会尝试进行转换。 new Object()==new Object()//.. [1,2]==[1,2] 而严格等于=== 类型不同的话,也是不等的。//如:"1.23"==="1.23"是false 对象的比较也是不相等的。//如:new Object===new Object 是false 而, null===null/undefined==undefined是正确的 值得注意的是,NaN===NaN是false,NaN无论跟谁(哪怕自己)比较都是不等的。查看全部
-
非原始数据类型: object:function/array/date/...查看全部
-
javascript中的原始数据类型: number string boolean null undefined查看全部
-
严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强安全性。 ‘use strict’ 严格模式下:不允许使用with 不允许未声明的变量被赋值 arguments变为参数的静态副本 重复属性名报错 不允许八进制字面量查看全部
-
var定义的全局,局部变量不能被delete,但隐式创建全局变量可以被delete。 全局函数,局部函数不能被delete查看全部
举报
0/150
提交
取消