为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 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的情况,出错。
    查看全部
    4 采集 收起 来源:编程练习

    2017-02-17

举报

0/150
提交
取消
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!