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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 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语句处理异常。
    查看全部
  • 【注意】视频里说的自相矛盾了,对于===来说,new Object()≠new Object()(对象用引用比较,而不是用值比较,只有指向相同对象时严格相等) 对于==来说,类型相同:同===,然而举例的时候又说new Object()==new Object() 于是我自己写代码测试了一下,new Object()==new Object()和[1,2]==[1,2]返回的都是false,证明他举例这说错了
    查看全部
  • 特殊运算符的种类: 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就是可以被删除。
    查看全部
  • 包装对象,就是当基本类型以对象的方式去使用时,JavaScript会转换成对应的包装类型,相当于new一个对象,内容和基本类型的内容一样,然后当操作完成再去访问的时候,这个临时对象会被销毁,然后再访问时候就是undefined
    查看全部
  • function arraysSimilar(arr1, arr2){ if(arr1 instanceof Array && arr2 instanceof Array ){ var obj = {}; if(arr1.length === arr2.length){ for(var i in arr1){ obj[Object.prototype.toString.apply(arr1[i])] = 1; } for(var j in arr2){ if(obj[Object.prototype.toString.apply(arr2[j])] !== 1){ return false; } } return true; }else{ return false; } }else{ return false; } }
    查看全部
    8 采集 收起 来源:编程练习

    2018-03-22

  • /***使用***/ /正则表达式/ 或 new RegExp("正则表达式") /***基本元素***/ . 任意字符(除换行符) \d 数字(0-9) \D 非\d \w 数字(0-9)or字母a-z(包括大小写)or下划线 \W 非\w \s 空格符,TAB,换行符,换页符 \S 非\S \t \r \n \v \f tab 回车 换行 垂直制表符 换页符 /***限制条件***/ [...] 字符范围以内 [^...] 字符范围以外 ^ 行首(匹配位置必须在行首)//^la $ 行尾 //la$ \b 零边界(例:\bla (o lapa)为true,(olapa)为false) \B 非\b /***特殊转移符***/ \ \后面的第一个字符会当成普通的文本字符 /***分组***/ (...) 一个分组 \n n是数字,配合()使用,表示第n个分组的内容,\0表示整个表达式 (?:...) 有?:的分组表示不记录在\n时会被忽略 /***重复***/ 贪婪算法(匹配尽可能多次) x* *前字符重复>=0次 x+ *前字符重复>0次 非贪婪算法(匹配尽可能少次) x*? 同x* x+? 同x+ x? 出现0 or 1次 x/y x或者y x{n}x{n,}x{n,m} 重复 n >=n >=n而<=m 次 /***3个flag***/ global 匹配所有,不使用匹配到第一个就会停 ignoreCase 不区分大小写 multiline 按行检索 例:/bulabula/gim RegExp("bulabula","gim") /***正则属性和方法***/ /.../.global /.../.ignoreCase /.../.multiline /.../.source //正则内容 /.../.exec('字符串'); //返还正则在字符串中匹配到的字符 /.../.test('字符串'); //正则在字符串中是否匹配成功 /.../.toString(); //返还正则表达式 x.compole("y") //将x中的正则替换为y
    查看全部
  • 一、隐式转换:巧妙用“+”和“-”规则转换类型

    1、num-0:变为数值       2、num+"":变为字符串

    当想要把字符串变为数值时:
    字符串与数字之间的加号理解为字符串拼接“123”+65=“12365”

    减号理解为运算 “123”-65=58

    二、a==b 与 a===b 的区别:
    1、类型相同时比较具体数值
    2、类型不同时:
        1)==:尝试类型转换:
                string => number 把字符串变为数值再进行比较
                ture   => 1            把布尔值变为数值再进行比较
                false  => 0
                object => 基本类型(涉及包装类)
        2)===: 直接返回false

    =:表示赋值,比如a=3;就是把3放到a里面
    = =:表示等于,3= ="3";会返回true,因为浏览器内部会把字符串3变成数字3
    = = =:表示严格等于,不会转换数据类型3= = ="3",会返回false,因为不会转换他们的数据类型,数字和字符串当然就不相等了
    对象和对象比较,是比较的引用,两个对象都是new出来的(新创建出来的),所以是不同的对象,不同的对象的引用是不同的,所以输出是false
    只有对象和基本类型进行比较的时候,才会将对象转变成基本类型,再作比较。两个对象比较的时候是不会转成基本类型的,如:
    var a = new String('hi');
    var b = new String('hi');
    a == 'hi';//true (先转换成基本类型再比较)
    b == 'hi';//true(先转换成基本类型再比较)
    但是 a == b;// false  (比较的是引用)

    查看全部
  • 类型检测 typeof 会返回一个字符串,适合函数判断和基本类型的判断(特殊null返回的数据类型是“object”) instanceof判断对象类型,但是不同的window和iframe对象类型检测不能用 Object.prototype.toString.apply([]) === "[object.Array]"//在IE6,7,8下,对null和undefined检测失效
    查看全部
  • 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
    查看全部
  • 注意: 1. 用for-in遍历时,原型链上的属性也会被遍历到,而且是无序遍历。 2. 属性删除用delete, prototype属性不可被删除;var定义的变量也不可用delete删除,函数也不可以被delete掉(经验证,不同的内核实现方式不同,在chrome下不可被delete掉,返回false,但在firefox和IE10下可以被delete掉,返回true,对于函数也是相同的结果)
    查看全部
  • 对这个练习,只用Object.prototype.toString.apply()能解决
    查看全部
    4 采集 收起 来源:编程练习

    2015-08-20

  • 序列化 通过全局的JSON.stringify(obj);做序列化处理 注意: 1、当你对象中有属性的值是undefined的时候,这该属性是不会出现在序列化字符串的结果里 2、当你属性的值是NaN或者Infinity时,序列化的结果是null;当你的属性值是new Date(),序列化的结果是UTC的时间格式 后端返回JSON数据,则用JSON.parse来转化;合法的JSON的属性必须用双引号引起来
    查看全部
  • 突然发现学这些有帮助理解jquery和其他一些框架的源码!!!!
    查看全部
  • try - catch - finally 语句: 使用throw 抛出的异常,需要被catch 处理,无论是否有catch 处理,都会执行finally 若嵌套try - catch - finally 语句,先看内层 throw 的error 是否被内层的catch处理,否则则被外层 catch 处理。 若内层 catch 处理时,也throw 了 error,则外层catch 仍会处理。 否则,外层catch 不执行。
    查看全部
  • 当调用a.length 或 a.t 时,会将a 转换为相应的包装对象,相当于 new 了一个临时的 String("string"),当完成了a.length 或 a.t 时,将销毁这个临时对象。
    查看全部
首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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