js的基础知识与应用(五)

数组的真正写法:

new Array();
函数的真正写法:
new Function(); //不推荐

Math的常用方法(本地对象)

Math.random()  获取0-1之间的随机小数不包括1
Math.ceil() 向上取整
Math.floor() 向下取整
Math.round()  四舍五入

Math.abs()  绝对值
Math.sqrt()  开方
Math.pow()  n次方(幂)
Math.max()  求最大值
Math.min()  求最小值

getByClass

批量修改样式:
1.with(obj.style){
    样式名=样式值;
    样式名=样式值;
    }
    不用:缺陷;
    主要是性能问题
2.obj.style.cssText='width:200px;height:200px;';
        obj.style.cssText  简单
        但是不用:有缺陷。
                  会覆盖 先把行间样式清空再加

getStyle 批量获取样式

function getStyle() {
    if (arguments.length==3){
        arguments[0].style[arguments[1]]=arguments[2];
    }else{
        for(var name in arguments[1]){
            arguments[0].style[name]=arguments[1][name];
        }
    }
}

eval:把字符串变成可执行的语句.

             eval('('+json+')')
     在解析json字符串的时候,要两边加()括号
     后台过来的json  都是字符串   
     ****另一种方法:var fn=new Function('return'+json);
                    fn()

预解析:

会预先解析一些(变量定义、函数会预解析);
var a=12;  
只把var a提到作用域的顶部
js会把变量的声明(仅仅是声明)提到顶部。不会突破作用域
`执行步骤:`
    读取一个script标签>预解析>执行里面的代码>
    读取下一个script标签>预解析>执行里面的代码
    不会突破script标签
undefined和not defined   
    undefined存在没有赋值
    not defined  没定义 直接用

预解析作用范围:

会找本作用域之内(函数、script)
函数也有预解析,但是要注意:
当以变量的形式声明的函数,预解析会按照变量的特性走

引用:

  对象才有引用  基本类型没有
       什么叫有引用 ?他们指的是同一个东西;
       引用: 共同是一个东西:object 
       只有在对象身上才会发生
 为什么会它有引用   因为对象比较大  不能每次都用新东西  性能浪费

异常:

try...catch
    报错的时候,后面的程序不执行。

bug异常 程序员不可控制的错误
try...catch
try 尝试着去执行一段代码。
如果没有做错。就正常执行。
如果有错,找catch
try{
    可能会出错的代码
}catch(e){
    补救代码
}
    e 包含着错误信息

严格模式

'use strict'
严格模式的好处:
    1.解决了局部函数中this是window的bug.
    2.解决了不加var声明变量的bug.
    3.避免在if,switch,for,while,for in里面定义函数
            (不允许在非函数的代码块内声明函数)
    4.去掉了with
严格模式是好东西
每个js文件都加上严格模式    推荐
严格模式有作用域    1.函数   2.script                      
                     
严格模式兼容?
高级浏览器兼容 ie9-不兼容
严格模式注意:
使用严格模式'use strict'前面不能有代码。

你可能感兴趣的:(js的基础知识与应用(五))