<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [toc] ## 基本類型和引用類型的值 基本類型值指的是簡單的數據段,而引用類型指的是可能有多個值構成的對象。 ##### 5個基本類型值: - [Number](#Number) - [String](#String) - [Boolean](#Boolean) - [Null and Undefined](#null和undefined) - [全局對象](#全局對象) --- ##### 動態屬性 引用類型的值,我們可以添加、改變和刪除其屬性和方法,如果對象的不不背銷毀或者屬性不被刪除,則這個屬性將一直存在。 ```javascript var a = {name: 'James'} a.age = 18; console.log(a.age); //-->18 delete a.age; console.log(a.age); //-->undefined ``` **無法給直接類型值添加屬性** ```javascript var a = 'String'; a.age = 18; console.log(a.age); //-->undefined ``` --- ##### 復制變量值 復制基本類型值時,原先的變量改變后不影響復制的值 ```javascript var a = 1, b = a; console.log(a, b); //--> 1,1 a = 2; console.log(a, b); //--> 2,1 b復制a后是完全獨立的 ``` 復制引用類型值時,復制的是指向引用類型值得**指針**,這個指針**指向存儲在堆中的一個對象**。 ```javascript var a = {}, b = a; a.name = 'James'; console.log(b.name); //-->James //改變b,a也會改變 b.name = 'Jack'; console.log(a.name); //-->Jack ``` --- ### Number 在javascript中能夠表示的最大整數范圍是 **-2^53 ~ 2^53** ##### javascript 中的算術運算 ```javascript Math.pow(2,53); //--> 2的53次方 Math.round(.6); //--> 1.0 四舍五入,返回的還是浮點型 Math.ceil(.6); //--> 1.0 向上取整 Math.floor(.6); //--> 0.0 向下取整 Math.abs(-1); //--> 1 取絕對值 Math.max(2, 5, 6); //--> 6 取最大值 Math.min(-1, -2, 1);//--> -2 取最小值 Math.random(); //--> 取0-1的隨機數 Math.PI //--> 圓周率π Math.E //--> e: 自然對數的底數 Math.sqrt(3); //--> 3的平方根 Math.pow(3, 1/3); //--> 3的立方根 Math.sin(0); //--> 三角函數: 還有Math.cos(), Math.atan()等 Math.log(10); //--> 10的自然對數 Math.log(100)/Math.LN10; //-->以10為底100的對數 Math.exp(3); //--> e的三次冪 ``` 當數字運算返回的結果超過最大整數時,結果是Infinity,負數則是-Infinity; 可以通過isFinite()方法判斷; NaN也有isNaN()判斷; ##### 浮點運算和四舍五入錯誤 ```javascript var x = .3 - .2, b = .2 - .1; x == b; //--> false ``` --- ### String ##### \轉義符 ``` //常用的轉義符 \n //換行 \t //水平制表 \r //回車 \' //單引號轉義 \" //雙引號轉義 \\ //\轉義 ``` ##### String方法和屬性 字符串方法: ```javascript var a = 'String'; a.charAt(0); //-->'S', 第一個字符 a.charAt(a.length-1); //--> 't', 最后一個字符 a.substring(1, 4); //-->'tri' a.slice(1,4); //-->同上 a.slice(-3); //-->'ing',最后3個字符 a.indexOf('S'); //-->0,S第一次出現的位置 a.lastIndexOf('S'); //-->0, S最后一次出現的位置 a.indexOf('i',3); //-->3, i在位置3及之后首次出現的位置 a.split(', '); //-->['String'] a.split(''); //-->['S', 't', 'r', 'i', 'n', 'g'] a.split(); //-->['String'] a.split(' '); //-->['String'] a.replice('S', 's'); //-->'string' 全文字符替換 a.toUpperCase(); //-->'STRING' 轉換成大寫 a.toLowerCase(); //-->'string' 轉換成小寫 ``` --- ##### Boolean 幾種會被轉化成false的值: ```javascript Boolean(0); Boolean(-0); Boolean(undefined); Boolean(null); Boolean(NaN); Boolean('');//空字符串, 如果是空格字符換則為true ``` --- ##### null和undefined null是特殊的object對象 ```javascript typeof null; //Object ``` undefined表示變量未定義的值,如果函數沒有返回值,也會返回undefined ```javascript var a = {}, b; console.log(a.a); //undefined console.log(b); //undefined ``` **null == undefined 返回true** **null === undefined 返回false** **null和undefined不包含任何值和屬性** --- ##### 全局對象 > 全局對象在javascript中有著很重要的作用:全局對象的屬性是全局定義的符號,javascript程序可以直接使用 - 全局屬性,比如undefined、Infinity和NaN - 全局函數,比如isNaN()、parseInt()、eval() - 構造函數,比如Date()、RegExp()、String()、Object()和Array() - 全局對象,比如Math, JSON --- ##### 不可變的原始值和可變的對象引用 > 對字符串進行操作,返回的是一個新的值,原來的并沒被改變 > 而對對象引用進行操作,例如數組的一些操作,會改變原先的數組 ```javascript var a = {x: 1}; a.y = 2; a.x = 3;//對象屬性可以改變 ``` 對象的比較并非是值的比較,具有相同屬性和值的兩個單獨的對象不相同,相同元素的兩個單獨的數組也不相同; ```javascript var a = {x: 1, y: 1}, b = {x: 1, y: 1}, x = [], y = []; a === b; //false x === y; //false ``` 對象通常被稱為**引用類型**,對象的值都是引用。**對象的比較是引用的比較,當兩個對象引用同一個基對象是,才相等。** ```javascript var a = [], b = a; b === a; //true a[1] = 1; //a改變了,b也會隨著改變 a === b; //true ``` ---
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看