犀牛書重讀筆記(一)


序言

    剛剛工作的時候,讀了一遍犀牛書和高程,但是對於其中的內容不甚了解,大概的快速過一遍,很多知識知其然不知其所以然。在工作一年之后,重新撿起來在看一遍,實踐和理論結合才能獲得更好的效果,這次筆記主要是為了再次牢記一些基礎知識,加深對於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的類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM