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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • js没有块级作用域,在for()等里面定义的变量,在 外面依然可以得到
    查看全部
  • 表达式
    查看全部
  • 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 “object”。这就需要用到instanceof来检测某个对象是不是另一个对象的实例。 另外,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。 例如: function Foo(){} Foo.prototype = new Aoo();//JavaScript 原型继承 var foo = new Foo(); console.log(foo instanceof Foo)//true console.log(foo instanceof Aoo)//true 上面的代码中是判断了一层继承关系中的父类,在多层继承关系中,instanceof 运算符同样适用。
    查看全部
  • JS中typeof与instanceof的区别: (1)typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。 (2)instanceof a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假 instanceof 用于判断一个变量是否某个对象的实例,如 var a=new Array();alert(a instanceof Array); 会返回 true,同时 alert(a instanceof Object) 也会返回 true;这是因为 Array 是 object 的子类。再如:function test(){};var a=new test();alert(a instanceof test) 会返回true 谈到 instanceof 我们要多插入一个问题,就是 function 的 arguments,也许都认为 arguments 是一个 Array,但如果使用 instaceof 去测试会发现 arguments 不是一个 Array 对象,尽管看起来很像。
    查看全部
  • 类型检测小结
    查看全部
  • 用new 去调用一个.bind的函数,会忽略 return function foo(){this.b =100; return this.a;} var func =foo.bind({a:1}); new func();//{b:100}
    查看全部
  • 用new去调用一个.bind的函数 .bind会失效
    查看全部
  • ES5特性下的arr函数 1.forEach(function(x,index,a){ do something });按数组长度循环,每次循环中,参数x为当前循环的元素,index为下标,a为指向本数组的指引。 2.map(function(x){ do something }); 也是将数组循环,x为当前循环的元素。不会修改原数组。 3.filter(function(x,index){return % 3 === 0|| x>8; }); 可以按function内的条件过滤数组。不会修改原数组。 4.arr.every(function(x){return x<10;})判断数组每个元素是否满足条件,arr.some()则是判断数组内是否含有满足条件的元素。 5.reduce(function(x,y){return x+y;},0);数组元素两两作运算(从左开始),reduceRight则是从右开始。不会改变原数组。 6.indexOf() 检索参数在数组中所在的下标。lastIndexOf(),从右边开始查找 7.isArrray([]); [] instanceof Array; ({}).toString.apply([])==='[object Array]' [].constructor===Array; 都是判断是否为数组的方法。
    查看全部
  • arr = [1,2,3,4,5]; arr.splice(2,2); 两个参数是截掉[3,4]; 左边开区间 右边闭区间 然后arr = [1,2,5]; arr.splice(1,1,'a','b'); //把第一个元素截取掉 然后把a,b 拼接到相应的位置
    查看全部
  • function add(a,b,c){return a+b+c;} var func = add.bind(undefined,100);//var func =add(100,b,c);
    查看全部
  • module{x:81,getX"function(){return this.x}} module.getX();this为module. var getX =module.getX this为window.global
    查看全部
  • arr.slice(-4,-3)左边是开区间 右边是闭区间
    查看全部
  • 只取最右边那个值
    查看全部
  • 1.join()方法 默认是将字符串转换为字符串,并以“,”隔开元素,而join()中的参数就是替换字符串中的“,”, 而new Array(n+1).join(str)的原理是,创建一个n+1大小的数组,若用join()方法会产生含n个“,”的字符串,而str正好代替这些“,”以造成重复n次str参数的字符串。(n+1)个数组元素,join()有n个逗号 2.reverse()方法 将数组的顺序颠倒,注意:原数组会被改变成颠倒后的数组。 3.sort()方法 sort()方法只会对数组进行字符顺序上的排序,例如a,b,c,d,而如果是数字,则会取第一位数的字符顺序进行排序,改完以后原数组会被修改。如果想用sort进行数字上的排序,则应写入函数参数function(a,b){return a-b;},这是升序排列,反之降序是b-a。 4.concat()方法 作用是合并数组,返回值是合并后的数组,原数组不会改变。如果参数是一个一维数组(没有嵌套),则合并的时候会拉平数组,如果是嵌套数组,合并后只会拉平最外一层。 5.slice()方法 切断数组,原数组不会修改,如果传入一个参数n,则返回第n+1个到最后一个元素的数组,如果传入n,m,则返回第n+1到m元素的数组,-1代表最后一个元素,-2代表倒数第二个元素,以此类推,若输入的参数为负数i,j,则返回倒数第|i|个到倒数第|j|+1个元素,总结来说,对于正数,左区间开,对于负数,右区间开。 6.splice胶结方法 切断数组胶结数组,原数组会被修改,输入参数n,那么原数组第n+1个元素到最后一个元素都会被删除(会作为该函数的返回值),如果输入参数m,n,则删除第m+1个到第m+n个元素。如果输入两个以上的参数则删除前两个参数所指定的元素,替换上剩下的参数。
    查看全部
  • 数组,对象的初始表达式
    查看全部

举报

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

微信扫码,参与3人拼团

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

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