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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • m@ rk
    查看全部
    0 采集 收起 来源:概念与继承

    2016-10-07

  • 一般对象都会有一个原型,或者它的原型指向Object.prototype, 数组中是按照字母进行排序,当排序的是数字时 会将数组转换成相应的字母在排序,就会出现问题了 数组逆序和排序都是对原数组本身进行修改 如果concat的数组中还有数组则会拉平但是只会拉平一次() 如果要对数组进行排序则要arr.sort(function(a,b){return a-b;}) 注意:数组的合并则不会对原数组进行修改 返回部分数组arr.slice();
    查看全部
  • 稀疏数组并不含有从0开始的连续索引,一般length属性值比实际元素个数大。
    查看全部
  • 数组的长度 from 0 to 2^23-1 创建数组的两种方式: 1.字面量数组 var arr=['Yeoman',234,true]; 2.new Array(); var arr=new Array(3); 给数组增加一个元素arr[5]=add; 从数组中删除一个元素delete arr[0]用delete删除一个元素其数组长度不变只是将arr[0]的中值改成了undefined 动态的,无需指定大小 添加元素 在数组的尾部添加值可用 arr.push(3); 后 arr[arr.length]=3 在数组的首部添加值可用 arr.unshift(0)//将0添加到arr数组的首部 删除元素 在数组中删除尾部的值 arr.length-=1; arr.pop(); 在数组中删除首部的值 arr.shift(); 数组迭代 for in 不保证数组的顺序 如果要保证数组的顺序要用常规的for语句
    查看全部
  • ems3 不支持object.create 解决办法
    查看全部
  • 属性读写: var obj={x:1,y:2}; obj.x;//1 obj["y"];//2 var obj={x1:1,x2:2}; var i=1;n=2; for(;i<=n;i++) { console.log(obj['x'+i]);//输出1,2;拼接属性名的时候一般用到中括号 } var p; for(p in obj) { console.log(obj[p]);//有可能会把原型链上的属性遍历出来,因为属性是无序的 } 属性删除: var person={age:28,title:'fe'}; delete person.age;//true delete person['title'];//true person.age;//undefined delete person.age;//true delete Object.prototype;//false(不允许删除) var descriptor=Object.getOwnPropertyDescriptor(Object,'prototype'); descriptor.configurable;//false(不可配置,所以delete Object.prototype为false) 全局变量不可被删除: var globalVal=1; delete globalVal;//false 属性检测: var cat=new Object; cat.legs=4; cat.name="kitty"; 'legs' in cat;//true (in查找会一直查找到原型链并且无序) 'abc' in cat;''false "toString" in cat;//true,inherited property!(因为cat的原型是Object.Prototype,而object.Prototype.toString是存在的,所以返回true) cat hasOwnProperty('legs');//true cat.hasOwnProperty('toString');//false(cat本身是没有toString属性的,它的原型链才有,所以返回false)
    查看全部
  • 对象创建: var obj2{ x:1, y:2, o:{ z:3, n:4 } } 原型链: function foo(){} foo.prototype.z=3; var obj=new foo(); obj.x=1; obj.y=2; obj.x;//1 obj.y;//2 obj.z;//3 typeof obj.toString;//'function' 'z' in obj;//true obj.hasOwnProperty('z');//false obj.z=5; obj.hasOwnProperty('z');//true foo.prototype.z;//still 3 obj.z;//5 delete obj.z;//true obj.z;//3 Object.create对象创建: var obj=Object,create({x:1}); obj.x;//1 tyoepf obj.toString//"function" obj.hasOwnProperty('x');//false var obj=Object.create(null); obj.toString;//undefined
    查看全部
  • 构造函数都会有一个prototype属性(对象属性)。 对象属性使用new构造函数去创建对象原型。 object instanceof object会在原型链上查找,然后比较对象是否相等,js按照引用判断对象是否相等,不能垮框架iframe。 function Person(){} function Student(){} Student.prototype = new Person()(创建对象实例,这个对象实例会有原型指向Person.prototype对象) var bosn = new Student()(创建一个Stundent实例) 对象具有原型,原型指向构造器。prototype属性
    查看全部
  • 不同类型的比较,进行类型转换的逻辑。 number==string string转number boolean==? boolean转number true==1/false==0. object==numberstring object转为基本类型。
    查看全部
  • 技巧: num-0;num转为number num+'':num转为string 0==false true null == undefinded true Object()==Object() NaN != NaN
    查看全部
  • 严格模式: 严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,并增强安全性。 eg: function func() { 'use strict'; //在开头写上'use strict' ,表明一下语句都在严格模式下执行;如果写在全局,则 表明全部语句都在严格模式下执行 } 严格模式下的特点: 1.不允许使用with;//报SyntaxError错误(语法错误) 2.不允许未声明的变量被赋值;//报ReferenceError错误(引用错误) 3.arguments变为参数的静态副本; 4.delete参数、函数名报错;//报SyntaxError错误(语法错误) 5.delete不可配置的属性报错;//报TypeError(类型错误) 6.对象字面量重复属性名报错;//SyntaxError 7.禁止八进制字面量;// 8.eval,arguments变为关键字,不能作为变量、函数名; 9.eval独立作用域;//undefined
    查看全部
  • function: fd();//true function fd() { //do sth } fe();//TypeError var fe=function() { //do sth }; for..in: var p; var obj={x:1,y:2} for(p in obj) { } 1.顺序不确定 2.enumerable为false时不会出现 3.fo..in对象属性时受原型链影响 switch: var val=2; switch(val) { case 1: console.log(1); break; case 2: console.log(2); break; default: console.log(0); break; } 循环: while(isTrue) { //do sth } do { //do sth }while(isTrue) for(var i=0;i<n;i++) { //do sth }
    查看全部
  • 读写属性的方式 创建一个foo空函数, 创建一个obj对象,var obj=new foo(); 则obj对象的原型会指向foo.prototype
    查看全部
  • 块 block: 请注意:没有块级作用域,但是有函数作用域 eg: for(var i=0;i<10;i++) { ... } 和 var i=0; for(;i<10;i++) { ... } 一样。
    查看全部
  • 属性删除: var globalVal=1; delete globalVal;//false 不可被删除 但是如果是隐式的创建一个全局变量 eg:ohNo=1; window.ohNo;//1 delete ohNo;//true 可以被删除 如果只用等于那么null与undefined是相等的,而严格等于则null与undefined不相等
    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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