• 小注意1


    {} 单单出现一对大括号时表示代码块
    {
       var a = 2;
       console.log(a);
    }
     
    当大括号被赋值给一个变量时,表示对象的字面量
      var obj = {this.a=5};
     
    当大括号外用小括号包裹时,也表示对象
    ({}).toString.call(new Array);  //等价于   Object.prototype.toString.call(new Array);
     
    Function.toString()   // 返回  function Function(){ [native code] }        native code 是指内部代码,不能看
    Array.toString()   // 返回  function Function(){ [native code] }
    以此类推,RegExp,Number,Boolea等都是返回这个
    如果是自己定义的函数,则不会显示native code  而是将整个函数显示出来
          function my(){
               console.log('自定义');
          }
          console.log(my.toString());   //返回   function my(){console.log('自定义')}
     
    ps   var a = new Array();   a.toString();  // 因为数组里没东西,所以返回的是一个空字符串
     
    window对象有一个window属性指向自己,也就是  window.window === window   //为真
     
    伪数组的特点
           1.必须要有length属性
           2.如果length属性的值为0,那么这个对象没有任何元素(当然没有元素也可以是伪数组,比如arguments)
           3.如果length属性值不为0,那么这个对象一定有(length-1)为下标的属性
     
    举例说明,怎么判断是否是伪数组
    var a = {length:2,0:"xx",1:"xx"};  // 这是伪数组,length值为2,有2-1=1,有下标为1的值“xx”。
    var b = {length:7,0:"xx",1:"xx",2:"xx"}  //不是伪数组,length值为7,没有下标为6的值。
     
     
     IE8中需要先把自定义伪数组转为真数组,才能借用apply
    //在IE8中
    var o = [];
    var obj = {name:'su',age:23};
    [].push.apply(o,obj);  //会报错,在ie8中,apply要真数组或内置数组才能起作用。
     
    //将obj转为真数组
    [].push.apply(o,[].slece.call(obj));  //slice方法对数组进行截取,然后返回一个新的数组。
     
     
    null == undefined  //返回true
     
    函数在不同情境下的不同称呼
         1.普通函数 
               var say = function(){...}  //函数声明,不会被提升
               function tell(){...}   //函数定义,会被提升
        2.方法,如果一个函数有了宿主,那么这个函数就叫做这个宿主的方法。
               var s = {
                      fn : function(){...};
                      };
        3.构造函数,如果一个函数被通过new的方式创建了对象,那么这个函数就叫做构造函数。
        4.回调函数,如果一个函数被当作参数传给另外一个函数,那么这个函数就叫做回调函数
     
     
    原型链图示
    在IE8中获取元素css样式使用   元素.currentStyle.height
    高级浏览器中获取css样式使用  getComputedStyle(div).height
     
    input.getAttribute('value'); //获取输入框中的初始值,当input.value='新值';时,获取的仍为初始值,不会更新
    input.value; //获取input的value值
     
    在IE8中,不支持indexOf,是指不支持数组的indexOf,字符串的indexOf是支持的
         var arr = [3,4,5];  arr.indexOf(3);//报错         var str = "1234";  str.indexOf(3);//可以正常返回   str.indexOf('3')效果等同。
     
    String.trim和String.prototype.trim是不一样的。String.trim是把String当对象,trim是一个静态属性。另一个是原形链上的trim。字符串.trim(); 调用的是原形链上的trim。两者别搞混。
     
     
     
  • 相关阅读:
    待写
    让一个小div在另一个大div里面 垂直居中的四种方法
    20 个有用的 SVG 工具,提供更好的图像处理
    php原理简述
    Apache 打开网页的时候等待时间过长的解决方案
    TCP协议中的三次握手和四次挥手(图解)
    apache 各平台进程线程模块解析
    浅谈移动Web开发(上):深入概念
    响应式布局
    jQuery Mobile 入门教程
  • 原文地址:https://www.cnblogs.com/sujianfeng/p/8662716.html
Copyright © 2020-2023  润新知