美文网首页
深入学习JS

深入学习JS

作者: 矮萌杰 | 来源:发表于2018-07-01 20:54 被阅读0次

    一般而言,浏览器分为两个部分:
    1.shell:用户能够自己操作的部分。
    2.内核:浏览器核心(代码部分)
    ①:渲染引擎(HTML+CSS)
    ②:JS引擎
    ③:其他模块。

    下面介绍几种主流浏览器和内核

    主流浏览器 内核
    IE trident
    Chrome blink
    firefox Gecko
    opera presto
    safari webkit

    JS执行队列:
    task2,1ms -> task1,1ms -> task1,1ms -> task2,1ms -> task2,1ms ->task1,1ms -> JS执行主线程。

    JS定义的开发标准:
    var a = 10;
    b = 20;
    c = 30;
    变量要换行写,可以赋值,等号左右两边最好空格保持排版。

    值类型 ---- 数据类型
    不可改变的原始值(栈数据):值类型由值决定
    Number:var a = 123;(自带浮点型)。
    Boolean: var b = true/false;(只有对和错)。
    String: var c = "abcdefg";
    undefined: var d = undefined (未定义)。声明未定义打印出这个值
    null: var e = null(空)常用于覆盖。

    引用值:
    Array(数组)
    object (对象)
    function(方法)
    ......

    注意:原始值:把第一个值赋值给第二个,改变第一个值,第二个值不受影响。
    引用值:改变第一个值,第二个值也变。

    原始值:

    var a = 10;
    var b = a;
    a = 20;
    //打印出的值:a为20,b为10。
    

    引用值

    var arr = [1];
    var arr1 = arr;
    arr.push(2);
    输出:arr1与arr一样。
    

    typeof(操作符):区分数据是什么类型的。
    六种数据类型:number,string,undefined,boolean,object,function。
    用法:①:typeof(数据);返回六种类型中的一种
    ②:typeof 数据;

    类型转化:
    显示类型转换(区分大小写):
    Number(mix):将数据类型转化为number型。
    parseInt(a,b):将数据类型转化成整型。
    (b参:取值2~36(进制),可不填)
    parseFloat(a):将数据类型转化为浮点型
    PS:parse类型检测:只要第一个为数字,可输出至为数字为止。
    eg:"1234abc123" -> 1234
    Number:只要出现字母,输出都编程NaN。
    String(mix):转为字符串(类型全部都为字符串,值可能相等)
    Boolean():转为布尔值类型(除了那六个(undefined,null,NaN,""(双引号),0,false)为假,其他都为真)
    toString():用法不同
    eg:var a = 123;
    var b = a.toString();

    隐式类型转化(内部调用显示的方法)
    isNaN():判断括号内的数是否为NaN。
    把变量放入Number()中进行转化,再与NaN比较。

    ++/--,+/-:变把变量放图Number()中,再进行++或--,不管能不能运算,类型都转成了number了。

    “+”:两侧有一个为字符串,都会调用string().

    -,*,/,%:先转为Number()再进行计算。

    特例:把未定义的变量放入typeof()中不会报错,
    还会打印出undefined.
    typeof返回的六种数据类型都是string;
    typeof(typeof(a)) (a未定义) -> typeof(undefined) ->string.

    函数(弱数据类型语言永远输出不了地址):
    函数表达式:

    var test = function abc()
    {
     document.write("a");
    }
    //执行  test() ->打印出a
    //执行  abc() ->报错。
    //但是,test.name ->abc(函数名为abc)
    

    参数:

    function test(a,b){
      var a,b;//test(a,b)相当于再函数里面定义了a,b两个变量
    }
    

    传递参数:test(5,6);
    a,b:形式参数。
    5,6:实际参数。
    形式参数和实际参数可以不同,但是都一一对应,无对应则为undefined。
    形式参数个数<实际参数个数:
    实际参数存在"arguments"数组中,可遍历再将未有对应形式参数的实际参数输出。
    形式参数存于名称(本函数为test)的数组中;实际参数存于arguments数组中。

    映射:
    实际参数 = 形式参数:
    实际参数传给形式参数与argument[x(某值)]的一样,
    形式参数>实际参数:

    test(1);
    function test(a,b){
      var b = 2;
    }
    //输出arguments[1]值为undefined。
    

    相关文章

      网友评论

          本文标题:深入学习JS

          本文链接:https://www.haomeiwen.com/subject/cqjhuftx.html