-
js中不建议使用with(原因): 1.让JS引擎优化更难; 2.可读性差 3.可被变量定义代替 4.严格模式下被禁用 深层访问时可通过定义变量来取代with查看全部
-
注意: 1.顺序不确定,for - in 中遍历的属性并非一定按定义时的顺序,受引擎的影响 2.enumerable 为 false 时的属性将不会出现 3.for - in 对象属性时受原型链影响,若obj 的原型链上有z属性,在遍历时z 也会出现查看全部
-
1、左边为“函数声明”,右为这“函数表达式”; 2、“函数声明”可以在声明前执行(称之为“前至声明”),而“函数表达式”即不能;查看全部
-
try - catch - finally 语句: 使用throw 抛出的异常,需要被catch 处理,无论是否有catch 处理,都会执行finally 若嵌套try - catch - finally 语句,先看内层 throw 的error 是否被内层的catch处理,否则则被外层 catch 处理。 若内层 catch 处理时,也throw 了 error,则外层catch 仍会处理。 否则,外层catch 不执行。 try语句如果抛出异常,则执行catch语句,否则不执行,无论有没有异常,都执行finally语句;try语句必须跟catch或finally语句中至少一个组合使用。 try catch语句的嵌套语句执行顺序: 1)如果内部嵌套的try语句抛出异常,但内部没有相配套的catch语句,先执行内部的finally语句,然后跳到最近一层的catch语句执行。 2)如果内部嵌套的try语句抛出异常,内部有相配套的catch语句,先执行此语句处理异常,再执行内部的finally语句。不会再在外部处理异常。 3)如果内部嵌套的try语句抛出异常,内部有相配套的catch语句,并且catch语句也抛出异常,如果内部的catch语句有对异常的处理,先执行异常处理语句,然后执行内部的finally语句,最后执行离内部catch语句抛出异常最近一层的catch语句处理异常。查看全部
-
构造函数返回对象,如图中所示,因为返回的不是对象,所以就将this返回了查看全部
-
以{}组成块block,常用于for循环和if判断语句中,要注意没有块级作用域,比如for循环中var i=0;写在()内和写在for循环外面是一样的;还是属于全局变量; 在函数内定义 var a=b=1;会隐式定义出全局变量b;在函数外获取不到a,为undefined,但可以获取到b,a=1,b=1解决 在ES6面试之后有了let,即开始有了块级作用域查看全部
-
var obj = Object.create({x:1});查看全部
-
特殊运算符的种类: 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就是可以被删除查看全部
-
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查看全部
-
Array.prototype.map();对数组做一个映射,原数组不会被修改 Array.prototype.filter();数组过滤 .every();数组判断,每一个元素 .some(),数组判断,不用每一个元素都要符合条件 将整个数组聚合成一个唯一的结果 reduce();对数组两两进行操作 reduceRight();从反方向进行操作 indexOf();数组检索 lastIndexOf();从右往左对数组进行查找 判断是不是数组 isArray();是Array构造器上的属性; [] instanceof Array;//构造器方式进行判断 {[]}.toString.apply([])==='[object Array]';//true [].constructor ====Array;//true查看全部
-
slice(a,b)表示截取数组第a个索引元素到第b个索引元素结束,左闭右开;当a,b值为负数时,表示倒着截取数组,且不对原数组不修改。 splice(a)只有一个参数时,表示在a索引的位置截断数组,形成两个数组; splice(a,b)有两个参数时,表示在a索引的位置截取b个元素形成新数组。 splice(a,b,新元素) splice方法原数组会被修改。查看全部
-
数组反法 join();将数组转换为字符串 repeatString(str,n);重复str字符串n次 reverse();颠倒数组,但会对原数组修改 sort();会对数组进行排序,会对原数组进行修改。 如何对数值大小进行排序查看全部
-
稀疏数组并不含有从0开始的连续索引。查看全部
-
JS的数组是弱类型,数组可以将NULL、UNDEFINED、对象和数组等放入。 var arr = [1,2];字面量创建数组 var arr = new Array();构造器创建数组 数组元素增删:数组是动态的,无需指定大小 push();从尾部添加元素 unshift();从头部添加元素 delete();将元素变为undefined pop();从尾部删除元素; shift();从头部删除元素查看全部
-
条件判断时先判断array再判断length,否则可能出现不存在length的情况,出错。查看全部
举报
0/150
提交
取消