• javascript权威指南笔记--javascript语言核心(一)


    1.javascript的数据类型分为两类:原始类型和对象类型。

     原始类型包括字符串、数字、布尔值、null、undefined。

     对象是属性的集合,每个对象都由“名/值”对构成。数组和函数是特殊的对象。

       javascript核心定义了三种有用的类:日期类、正则类、错误类。

    2.整型直接量:

     16进制直接量以“0x”或“0X”开头,如0xff。

     8进制直接量以“0”开头,如0377。(注:某些javascript的实现不支持八进制,所以最好不使用)

    3.javascript中的算术运算:

     Math.round();//四舍五入

     Math.ceil();//向上取整

     Math.floor();//向下取整

    4.Infinity表示正无穷大,NaN表示非数字值。

     NaN和任何值都不相等,包括它自己。

     没办法通过x==NaN来判断x是否是数值类型,应当用x!=x来判断。

    5.字符串可以接收RegExp参数的方法

     var text = "testting:1,2,3,4";

     var pattern = /d+/g;//匹配包含一个或多个数字的实例

     pattern.test(text);//true

     text.search(pattern);//9,首次匹配成功位置

     text.match(pattern);//["1","2","3","4"],所有匹配组成的数组

     text.replace(pattern,"#");//“testting:#,#,#,#”

     text.split(/D+/);//["","1","2","3","4"]用非数字字符截取字符串

    6.会被转换成false的值:null,undefined,0,-0,NaN,"",其他值(包括对象、数组)都会被转换成true。

    7.undefined和null:

     undefined表示变量没有初始化,如果要查询对象属性或数组元素的时候返回undefined,则说明这个属性或元素不存在。

     如果函数没有返回任何值,则返回undefined。

     应该用===来区分null和undefined。

     undefined是意料之外的空缺,而null是意料之中的空缺。通常要将他们赋值给变量或属性的时候选择null最佳。

    8.包装对象

     var str = "abc";
     str.len = 4;

     var t = str.len;

     console.log(t);//undefined

     创建了一个临时字符串对象,随即销毁这个对象。所以后面再访问这个对象就不存了。

     var S = new String(s);

     console.log(typeof(s));//String

     console.log(typeof(S));//object

     console.log(s==S);//true

     console.log(s===S);//false

    9.不可变的原始值:任何方法都无法修改null、undefined、boolean、字符串、数字。

             并没有办法用来比较它们。

    10.可变的对象:它们的值是可修改的。

           即使两个对象包含同样的属性,且属性的值完全相同,它们也不是相等的。

           各个索引元素完全相等的两个数组也不是相等的。

           当且仅当它们引用同一个基对象时,它们才相等:

           var a = [1,2,3];

           var b = a;

           b[0]=1;

           a[0]//1

           a===b//true

           将一个对象显示地赋值给一个变量,仅仅是将对象的引用值赋给了变量,对象本身并没有被复制。

           要想得到一个对象的副本,需要显示地复制对象的每个属性或数组的每个元素:

           var c = ['a','b','c'];

           var d = [];

           for(var i = 0; i < c.length; i++) {

             d[i]=c[i];

           }

           如果我们想比较两个单独的对象或数组,必须比较它们的属性或元素。

    11.类型转换:(加粗的地方需要特别注意)

      

    12.隐式转换:

      x+""//等价于String(x);

      +x//等价于Number(x);

      !!x//等价于Boolean(x);

    13.除了null和undefined之外的任何值都具有toString()方法,这个方法的执行结果通常和String()方法一样。

    14.toString()方法可将数字转化成其他进制数,不指定参数默认转成十进制:

      var n = 17;

      n.toString(2);//"10001"

      n.toString(8);//"21"

      n.toString(16);//"11"

    15.toFixed()方法根据小数点后的指定位数将数字转化成字符串,并适当地四舍五入或填零:

      var m = 123.234;

      m.toFixed(0);//"123"

      m.toFixed(2);//"123.23"

      m.toFixed(5);//"123.23400"

    16.Number()方法将字符串转换成整数或浮点数,但是字符串不能出现非法的尾随字符,此方法基于十进制进行转换。

      parseInt()和parseFloat()是全局方法,会尽可能多地跳过字符串前面的空格,并忽略后面的字符串:

      parseInt("  3 meters");//3

      parseInt("0xff");//255

      parseFloat(".1");//0.1

      parseInt("0.1");//0

      parseIn(".1");//NaN,数字不能以.开头

      parseFloat("$0.1");//NaN,数字不能以$开头

  • 相关阅读:
    L1-018 大笨钟 (10分)
    L1-017 到底有多二 (15分)
    L1-016 查验身份证 (15分)
    L1-015 跟奥巴马一起画方块 (15分)
    L1-014 简单题 (5分)
    L1-013 计算阶乘和 (10分)
    L1-012 计算指数 (5分)
    L1-011 A-B (20分)
    L1-010 比较大小 (10分)
    L1-009 N个数求和 (20分)
  • 原文地址:https://www.cnblogs.com/rellame/p/4950733.html
Copyright © 2020-2023  润新知