首页 > 代码库 > 犀牛书重读笔记(一)

犀牛书重读笔记(一)

序言

    刚刚工作的时候,读了一遍犀牛书和高程,但是对于其中的内容不甚了解,大概的快速过一遍,很多知识知其然不知其所以然。在工作一年之后,重新捡起来在看一遍,实践和理论结合才能获得更好的效果,这次笔记主要是为了再次牢记一些基础知识,加深对于js这种语言的理解。写的并不全,主要是为了自己加深印象。

1、类型,值和变量

    在JavaScript中,数据总的会分为两种类型,原始类型与对象类型。

        原始类型包括数字、字符串和布尔值,同时,在原始类型中,有两种特殊的类型,null(空)和undefined(未定义)。除了这些原始类型以为的东西,都是对象类型。

        对象就是属性的集合,属性就是‘键\值对’。普通的对象是属性的无序集合,但是有一些特殊的对象不是,比如数组。数组是对象类型,但是数组是有顺序的。另一种特殊的对象就是函数,函数可以被执行,但是同样可以进行对象操作。除了以上数组类和函数类意外,JavaScript还提供了三种类分别是,日期(Date)、正则(RegExp)和错误(Error)。

  JavaScript中的数字运算

    除了基本的加减乘除运算外,JavaScript还提供Math对象进行复杂运算。Math对象的属性如下
      Math.pow(3,3)    计算3的三次幂

      Math.round(.6)        四舍五入计算

      Math.ceil(.3)        向上求整

      Math.floor(.3)      向下求整

      Math.abs(-5)       求绝对值

      Math.max(x,y,z)     返回最大值

      Math.min(x,y,z)    返回最小值

      Math.random()      返回一个0到1的伪随机数

      Math.PI            返回圆周率

      Math.E           e:自然对数的底数

      Math.sqrt(3)      3的平方根

      Math.sin(0)

      Math.cos(0)

      Math.log(0)

    当计算超出JavaScript的计算上线时,会发生溢出,并返回无限大(infinity)

    在JavaScript中,所有的实数都是由一个近似的浮点数表示,所以在计算数值的时候,如果有必要的话,需要首先进行处理,然后再赋值。

  JavaScript中的文本

    转义字符 \    ex   ‘you\‘re right,it can\‘t be a quote‘

    JavaScript中的数组操作

      var a = ‘hello,world‘

      a.charAt(0)    返回‘h‘ 返回第0个字符

      a.substring(1,4)   返回ell 返回第2个到第4个字符,与slice不同,两个参数顺讯可以颠倒

      a.slice(1,4)    返回ell 但是与substring不同的是slice可以接受负数

      a.indexOf(‘l‘)    返回2 首次l出现的位置

      a.lastIndexOf(‘l‘)    返回10 最后一次出现l的位置

      a.indexOf(‘l‘,3)    返回3,第三个字符之后出现l的位置

      a.split(‘,‘)    返回数组 以,划分

      a.replace(‘h‘,‘H‘)    返回被替换后的字符串

      在JavaScript中,字符串是不能被改变的,以上操作返回的都是新的字符串

  JavaScript中的布尔值

    在JavaScript中 undefined null 0 -0 NaN ‘‘ 都是false。除了这6个值,其他值都不会被当成false 包括空数组和空对象

  null和undefined

    在JavaScript中  对null进行typeof运算,返回值为object。也就是说null其实是一种特殊的对象,他的含义是非对象,他表示数字、字符串、对象没有值。对于undefined来说,他表示的未定义。对undefined进行typeof操作 返回的是undefined

  JavaScript中包装对象

    JavaScript中的对象是一种复合值:他是属性或命名值得集合,可以通过‘.‘符号来引用属性。当属性值是一个函数的时候,称其为方法。通过obj.m()来调用。对于字符串等非对象,他们也有属性,从根本上看,是在对其进行操作的时候,新创建了一个对象,在操作结束后销毁了那个对象。

  JavaScript中布赫编的原始值和可变的对象引用

    JavaScript中的原始值(undefined,null,布尔值,数字,字符串)都是只读的,所有对其的操作都是返回一个新的值。而对于赋值符号=,很多时候只是多了一个指向,而不是多了一个数组。比如 var a = [1,2,3];var b = a;这是a和b指向的是同一个数组,对a进行操作,b也会改变。

  JavaScript中的转换

    JavaScript中的转换相等

      null==undefined;

      ‘0‘==0;

      0==flase;

      ‘0‘==flase;

    JavaScript中的显示类型转换

      上面的转换时自动的转换,JavaScript中同样提供了主动的转换函数

        Number(‘3‘)  返回3;

        String(false)   返回‘flase‘

        Boolean([])       返回true

        Object(3)          返回New Number(3)

2、表达式

  in运算符

    var point = {x:1,y:2}

    ‘x‘ in point      返回true

  instanceof运算符

    var d = new Date();

    d instanceof Date(); ture 因为d是由Date()创建

    d instanceof Object ;true d是一个对象

  typeof运算符

    typeof a;   返回a的类型

犀牛书重读笔记(一)