-
var声明:在一个var中也可以声明多个变量 var a = b = 1; //声明了a、b两个变量,都赋值为1 function foo(){ var a = b = 1; } foo(); console.log(typeof a); //undefined,a是局部变量,在函数体外不能访问 console.log(typeof b); //mumber,b是全局变量 正确定义多个变量的方式(用逗号分割):var a = 1,b = 1; 这样就不会出现分别为局部和全局变量查看全部
-
注意:没有块级作用域!!! for循环中var i = 0;在for循环结束后在外面一样可以拿到i的值(循环到最后一次的值)查看全部
-
block块:块语句常用于组合0~多个语句,块语句用一对花括号来定义,块语句通常配合if、while来使用,要让浏览器理解为对象字面量表达式需要赋值给变量查看全部
-
特殊运算符 ❤in运算符: window.x = 1; "x" in window; //true,判断是否有x这样一个key ❤instanceof和typeof运算符: {} instanceof Object // true,instanceof基于原型链判断对象的类型 typeof 100 === "number" // true,typeof常用语原始类型或函数对象,返回的是字符串 ❤new运算符:function Foo(){} //创建一个空函数 Foo.prototype.x = 1; var obj = new Foo(); //用new关键字创建一个新对象obj,通过运算符new可以创建一个构造器的实例 obj.x; //1,可以从prototype这个属性中拿到x的值 obj.hasOwnProperty("x"); //false //hasOwnProperty判断这个属性在对象还是原型链上,false表示不是属于直接对象上的属性 obj._proto_.hasOwnProperty("x"); //true,_proto_拿到原型,x是属于原型上的属性而不是对象本身的属性 ❤this运算符: this; //全局的this会指向window(浏览器) var obj = { func : function(){return this;} //如果是对象的属性,值是一个函数 } obj.func(); //this会指向对象本身,obj ❤void运算符:void 0 // undefined void (0) // undefined 属于一元运算符,不管值是多少都会返回undefined查看全部
-
①运算符按操作数分类 一元运算符:+ num // +号:把一个变量尝试转换为数字,-号:把正数变负数/把负数变正数 二元运算符:a + b 三元运算符:c ? a : b //条件,尝试把c转换为布尔值,为true表达式运算结果取a ②运算符按功能分类 ❤赋值:x += 1; // +=、-=或等于 ❤比较:a == b; // 等于或严格等于 ❤算数:a - b; // +、-、*、/ ❤位:a | b; ❤逻辑:exp1 && exp2;// 常用于if中 ❤字符串:"a" + "b"; // 字符串拼接 ❤特殊:delete obj.x ③特殊运算符 ❤条件运算符:c ? a : b; var val = true ? 1 : 2; // val = 1 ❤逗号运算符:a , b var val = (1,2,3); // val = 3 逗号运算符会从左到右依次去计算表达式的值,最后会取最右边的,用逗号隔开表示每个表达式都会被计算 ❤delete运算符: delete obj.x; 删除对象上的属性 var obj = {x:1}; 、obj.x; // 1 、delete obj.x; 、obj.x; // undefined 从IE9开始,有一个Object.defineProperty方法,用这个方法可以设置一个configurable标签,并不是对象上的所有属性都可以成功的delete掉,如果configurable标签为true,才可以正常的被delete var obj = {}; Object.defineProperty(obj,"x",{ configurable : false, value : 1 }); delete obj.x; // false 、obj.x; // 1查看全部
-
数组的方法查看全部
-
表达式是一种JS短语,可使JS解释器用来产生一个值 ----《JS权威指南》 ①原始表达式 常量、直接量:3.14,"test" 关键字:null,this,true 变量:i,k,j 原始表达式和原始表达式可以变为复合表达式,例如10*20,两个原始表达式利用运算符变为复合表达式 ②数组、对象的初始化表达式 [1,2]//表示定义了一个数组对象,并有1,2两个元素,等价于new Array(1,2); [1,,,4]//等价于[1,undefined,undefined,4] {x:1,y:2}//等价于var o = new Object(); o.x = 1; o.y = 2; ③函数表达式 var fe = function(){}; (function(){console.log("hello world");})(); ④属性访问表达式 var o = {x:1}; o.x //通过点可以访问这个对象的x属性 o["x"]//通过中括号吧key传进去,这样也可以访问这个对象的属性 ⑤调用表达式 func();//函数名加(),调用函数 ⑥对象创建表达式 new Func(1,2); new Object; 表达式分类:原始表达式 、初始化表达式 、函数表达式 、属性访问表达式 、调用表达式 、对象创建表达式查看全部
-
过滤原型链上的对象查看全部
-
在JavaScript中,想要判断某个对象值属于哪种内置类型,可以通过Object.prototype.toString方法.查看全部
-
序列化查看全部
-
序列化的值是undefind则不会出现查看全部
-
函数 函数声明”可以在声明前执行称之为“前至声明”而“函数表达式”即不能 for ... in for ... in 访问的顺序是不确定的具体情况要视引擎而定 如果需要按顺序访问数组或属性就不要用for .. in了 with js中不建议使用with原因 1.让JS引擎优化更难 2.可读性差 3.可被变量定义代替 4.严格模式下被禁用 使用时可通过定义变量来取代with查看全部
-
属性标签查看全部
-
在js中会对不同得类型处理,加号会理解字符串链接,减号会处理成运算查看全部
-
js有6种数据类型,5种原始类型和一种对象类型。查看全部
举报
0/150
提交
取消