-
六种数据类型:5种基本类型(数字,字符串,布尔值,null,undefined),1中对象类型Object(Function、Array...)查看全部
-
改变prototype不影响已创建的对象所指向的原型查看全部
-
!function //将函数作为函数表达式而不是函数声明,函数声明会被前置处理查看全部
-
call/apply查看全部
-
javascript深入浅出 3-4JavaScript严格模式查看全部
-
.join() - 数组成员拼接为字符串,原数组不变 .reverse() - 翻转数组成员,修改原数组 .sort() - 按字符串将数组成员排序,修改原数组 .concat() - 连接两个数组,原数组不变 .slice() - 数组切片,原数组不变 .splice() - 数组剪切和在剪切位置插入成员,修改原数组 .forEach() - 遍历数组,原数组不变 .map() - 数组映射,原数组不变 .filter() - 过滤数组成员,原数组不变 .every()/.some() - 数组成员 全都 / 有一个 满足某条件,原数组不变 .reduce()/.reduceRight() - 将数组成员两两操作,最终得到唯一一个值,原数组不变 .indexOf()/lastIndex() - 从左到右/从右到左搜索实参在数组的索引,不存在则返回-1,原数组不变 Array.isArray() - 判断是否为数组,原数组不变查看全部
-
稀疏数组 0 in arr1//判断的是arr1中第0个元素是否存在查看全部
-
数组是动态的,除了直接arr[3]=赋值的方法 arr.push()//在尾部插入数据 arr.unshift()//在头部插入数据 delete arr[2]//只是使得这个位置变为undefined,并没有删除 arr.length-1//删除尾部的数据 arr.pop()//删除尾部的数据 arr.shift()//删除头部的数据 数组迭代 for(;i<n;i++) for(i in arr){}//会查找原型链上的属性,并且可能不会按照顺序 数组的原型链为Array.prototype查看全部
-
创建对象方式: 1 字面量 { } 2 new /原型链 fuinction foo(){};var obj=new foo(); 3 var obj=Object.create({x:1 });查看全部
-
对象的属性:extensible(是否可被扩展) Object.isExtensible(obj)//true,但是对象的属性的属性标签都是true Object.preventExtensions(obj)//使得extensible为false Object.seal(obj)//使得extensible为false且对象的属性的configurable为false Object.isSealed(obj)//true Object.freeze(obj)//使得extensible为false且对象的属性的configurable,writable为false Object.isFrozen(obj)//true 序列化: obj = {x:1,y:ture}; JSON.stringify(obj)//"{"x":1,"y":true}"; 还有toString和valueOf方法,优先判断valueOf方法查看全部
-
严格模式 是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强安全性。 用法: function func(){ ‘use strict '; } 在严格模式下: 1.不允许使用with; 2 不允许未声明的变量进行被 赋值 3,arguments变为参数的静态副本 4. delete不可配置的属性 会报错 TypeError 5 delete参数 、函数名 会报语法错误 SyntaxError 6. 对象字面量重复属性 报错SyntaxErroe var a={x:2,x: 3;} 7 禁止八进制字面量 8 eval arguments变为关键字,不能作为变量名、函数名 否则报错SyntaxError 9 严格模式下eval独立作用域查看全部
-
默认的属性标签:value(值),writable(是否可写入,修改)=false,enumerable(是否可遍历,枚举)=false,configurable(是否可再被修改,或者被delete删除) Object.getOwnPropertyDescriptor({pro:true},'pro')获取这个属性标签的情况查看全部
-
try cacth 异常捕获机制 try{ throw"test"; }catch(ex){ consloe.log(ex); }finally{ console.log("fianlly"); }查看全部
-
如果有get/set方法,则会走这两个方法,如果方法定义中没有赋值的操作,则不会进行赋值。 用Object.defineProperty(obj,'z'{value:100})的方法进行创建属性,会覆盖原型链上的属性,则赋值操作的时候走的是这个对象的set/get方法,可以赋值。 同理,var obj = Object.create(o)也是创建对象的方法,如果writable=false,则一样不能进行写入操作查看全部
-
function(){ var a=b=1; } foo(); console.log(typeof a)//undefined console.log(typeof a)//number 用连等于使得b成为了全局变量查看全部
举报
0/150
提交
取消