-
{a:1,b:2}直接用会当成块处理,有异常-----要用var o={a:1,b:2} 注意:没有块级作用域,有函数、全局、value作用域 function foo(){ var a=b=1;//此时的b是全局变量 var a=1,b=1;//此时的a,b是局部变量-------在一条语句中定义多个变量用逗号 } foo(); console.log(typeof a);//'undefined' concole.log(typeof b);//'number'查看全部
-
function a() { var i = 0; function b() { alert(++i); } return b;}var c = a();c(); 1、函数b嵌套在函数a内部; 2、函数a返回函数b。 当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。查看全部
-
foo(x,y,z) foo.length;//3返回形参的个数3 foo.name;//foo 返回函数的名字 arguments.length 返回实参个数 arguments的原型并不是Array.prototype,所以它没有join或者slice这些数组方法 如果参数没有传进去,那么arguments与参数就会失去绑定关系,在严格模式下,arguments总是传入形参的副本 对于call函数来讲,第一个参数是作为this的参数,如果这个参数不是对象,那么会转为对象,如果this指定null或者undefined的话它会指向全局对象(浏览器为window),但是在严格模式下还是会指向null或者undefined bind方法ie9+才支持,会改变函数运行时的this,如果不改变this直接在第一个参数写undefined;bind函数还可以将函数拆分多个子函数 function add(a,b,c){ return a+b+c; } var func = add.bind(undefined,100); //100默认为a参数 func(1,2);//103,1,2分别为b,c参数 var func2 = func.bind(undefined,200); //func已经绑定了一个参数啊,这里200默绑定b参数 func2(10);//310 function foo(){ this.b=100; return this.a; } var func=foo.bind({a:1}); func();//1 new func();//b:100查看全部
-
逗号表达式,从左到右依次计算表达式的值,最后取最右边的查看全部
-
运算符优先级查看全部
-
特殊运算符查看全部
-
利用obj.hasOwnProperty('x');来判断该属性是否属于该对象obj还是对象的原型链上!!! 通过obj._proto_.hasOwnProperty('x');取得对象原型链上的属性!!而非对象本身的属性!! 特殊运算符的种类: 1、条件运算符 c?a:b c为true 则取a,否则取b 2、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3 3、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效 4、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window 5、instanceof 判断对象类型 {} instanceof Object // true(返回布尔值) 6、new运算符 创建一个新对象 new obj / new array ... 7、this对象 全局用指向window,函数内指向函数本身,浮动指针 8、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true(判断对应类型字符串) 9、void 一元的,判断所有值,返回均为undefined 一般delete 运算符可以删除对象的属性,而如果使用方法Object.defineProperty(对象,'属性',{configurable:false})处理了对象,该属性就不会被删除,反之ture就是可以被删除。查看全部
-
只有configurable标签为true的时候,才可以被正常被delete查看全部
-
1. 原始表达式 //常量、直接量、关键字、变量 3.14、"test"、null、i、k、j 2. 初始化表达式 //[1,2]、{x:1, y:2} 3. 函数表达式 //var fe = function(){}、(function(){})() 4. 属性访问表达式 //var o = {x:1}、o.x、o['x'] 5. 调用表达式 //func() 6. 对象创建表达式 //new Func(1,2)、new Object查看全部
-
javaScript的五中原始数据类型查看全部
-
某个对象的属性的值是函数,那么函数里面的this指向的是这个对象 call与apply的区别:call传参是扁平的,apply传参是把参数作为一个数组 用new方式创建一个构造器时,这个构造器的this指向的是这个构造器的prototype这个空对象,最后函数ude返回值如果没有写return或者return的是基本类型,那么会将this作为返回值,如果return某个对象的话,那么会将这个对象作为返回值 <script> var fullname = "Trigkit4"; var person = { fullname : 'Jack', prop:{ fullname : 'Blizzard', getFullname : function () { return this.fullname; } } }; console.log(person.prop.getFullname());//Blizzard var test = person.prop.getFullname; console.log(test());//Trigkit4 </script> 当getFullname被分配到test变量时,上下文指的是全局对象(window)。这是因为test是被隐式设置为全局对象的属性。出于这个原因,该函数返回window的fullname,所以在这里 this 指的是window, 所以返回的是第一个fullname查看全部
-
不错 讲的很好查看全部
-
函数声明与函数表达式的区别 函数声明可以在它的前面调用,函数表达式则不行会报错,函数声明和变量声明会提前,但是赋值语句则不会提前; 在Function构造器去创建的函数对象里,我们创建的变量仍然是局部变量,外部不可访问; Function构造器能够娶到全部变量 ,但却访问不到localVal它的上一层变量查看全部
-
动态修改对象原型上的某个属性可行,但在原型上修改无效查看全部
-
函数是一块JavaScript 代码,被定义一次,但可以执行跟调用多次。js中的函数也是对象。所以js函数可以像其他对象那样操作和传递。所以我们也常叫js中的函数为函数对象;查看全部
举报
0/150
提交
取消