最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript的類型、值和變量小結(jié)

 更新時間:2015年07月09日 10:31:42   投稿:hebedich  
這篇文章主要介紹了JavaScript的類型、值和變量小結(jié)的相關(guān)資料,需要的朋友可以參考下

前言:JavaScript的數(shù)據(jù)類型分為兩類:原始類型和對象類型。5種原始類型:數(shù)字、字符串、布爾值、null(空)、undefined(未定義)。對象是屬性的集合,每個屬性都由“名/值對”(值可以是原始值、也可以是對象)構(gòu)成。三個比較特殊的對象:全局對象、數(shù)組、函數(shù)。JavaScript語言核心還定義了三種有用的類:日期(Date)類、正則(RegExp)類、錯誤(Error)類。

  1 數(shù)字

  JavaScript中不區(qū)分整數(shù)值和浮點數(shù)值。JavaScript可以識別十進制整型直接量(所謂直接量,就是程序中直接使用的數(shù)據(jù)值),和16進制值(以0x或0X為前綴,那個是數(shù)字0不是字母o。想想如果是字母o的話,那一個十六進制值不成了一個標識符了嘛)。盡管ECMAScript標準不支持八進制直接量,但JavaScript的某些實現(xiàn)可以采用八進制形式表示整數(shù)(以數(shù)字0為前綴),筆者在自己電腦上的IE、Chrome、FF這三種瀏覽器中使用八進制給一個變量賦值也都沒問題。不過在ECMAScript6的嚴格模式下,八進制直接量是明令禁止的。

  浮點型直接量有兩種寫法。①傳統(tǒng)的實數(shù)寫法:有整數(shù)部分、小數(shù)點和小數(shù)部分組成;②指數(shù)計數(shù)法:即在實數(shù)后跟字母e或E,后面跟正負號,其后再跟一個整型的指數(shù)。

   1.1 算術(shù)運算的溢出

  JavaScript中算術(shù)運算在溢出(overflow)、下溢(underflow)或被0整除時不會報錯。

  溢出:當運算結(jié)果超出了JavaScript所能表示的數(shù)字上限,結(jié)果為正無窮大Infinity或負無窮大-Infinity。無窮大值得行為特性也符合現(xiàn)實:基于它們的加、減、乘和除運算結(jié)果還是無窮大值(當然保留它們的正負號);下溢:當運算結(jié)果無限接近于零并比JavaScript能表示的最小值還小的時候發(fā)生的情形。這種情況下,將會返回0。當一個負數(shù)發(fā)生下溢時返回特殊值“負零”。負零和整零基本是相等的(甚至可以使用嚴格相等===來測試),除了作為除數(shù)之外:

var zero = 0;  //正零值
var negz = -0;  //負零值
zero === negz  //表達式返回值為true
1/zero === 1/negz  
//表達式返回值false,等價于判斷正無窮大和負無窮大是否嚴格相等

  被0整除會返回正無窮大或者負無窮大值。但0除以0會返回NaN(JavaScript預(yù)定義對象Number的NaN屬性的值)。返回NaN的有四種情況:①0除以0②無窮大除以無窮大③給任意負數(shù)作開方運算④算術(shù)運算符與不是數(shù)字或無法轉(zhuǎn)換為數(shù)字的操作數(shù)一起使用時。

  NaN值有一點特殊:它和任何值都不相等,包括自身。判斷一個變量x是否為NaN的兩種方法:①使用函數(shù)isNaN()②是使用x != x 判斷,當且僅當x為NaN時,表達式結(jié)果才為true。JavaScript中還有一個類似的函數(shù)isFinite(),在參數(shù)不是NaN、Infinity或-Infinity的時候返回true。

  1.2 二進制浮點數(shù)和四舍五入錯誤

  實數(shù)有無數(shù)個,但JavaScript通過浮點數(shù)的形式只能表示其中有限個數(shù)。也就是說,在JavaScript中使用實數(shù)的時候,常常只是一個真實值的一個近似表示。JavaScript采用了IEEE-754浮點數(shù)表示法,這是一種二進制表示法,可以精確的表示如1/2、1/8和1/1024、這樣的分數(shù),但是十進制分數(shù)1/10、1/10等并不能精確的表示。例如:

var x = 0.3 -0.2;  //x=0.09999999999999998
var y = 0.2 - 0.1;  // y=0.1
x == y       //false
x == 0.1      //false
y == 0.1      //true
0.1 == 0.1     //true
var z = x + y;   //z=0.19999999999999998

  2 文本

  2.1 字符串、字符集

  字符串(string)是一組由16位值組成的不可變的有序序列,每個字符通常來自于Unicode字符集。字符串的長度(length)是其所含16位值得個數(shù)。JavaScript通過字符串類型來表示文本。注意:JavaScript中并沒有表示單個字符的“字符型”。要表示一個16位值,只需將其賦值給字符串變量即可。

  JavaScript采用UTF-16編碼的Unicode字符集,JavaScript字符串是由一組無符號的16位值組成的序列。那些不能表示為16位的Unicode字符則遵循UTF-16編碼規(guī)則——用兩個16位值組成一個序列(或稱作“代理項對”)表示。這意味著一個長度為2的JavaScript字符串有可能表示一個Unicode字符。注意:JavaScript定義的各式字符串的操作方法均作用于16位值,而非字符,且不會對代理項對做單獨處理。書看到這里,又結(jié)合http://www.alloyteam.com/2013/12/js-calculate-the-number-of-bytes-occupied-by-a-string/上面所述,終于對Unicode字符集、UTF-8、UTF-16稍有理解。

  字符串的定界符可以是單引號或者雙引號。這兩種形式的定界符可以嵌套,但是不能多層嵌套(比如,雙引號可以包含單引號,這時單引號中不能再包含雙引號了)。正如上篇所說,一個字符串值可以拆分為數(shù)行,每行必須以反斜線(\)結(jié)束,這時反斜線和行結(jié)束符都不算是字符串內(nèi)容,即字符串本身并非是多行,只是寫成了多行的形式。

  注意:①在JavaScript中字符串是固定不變的(除非重新賦值),類似replace()和toUpperCase()的方法都返回新字符串,原字符串本身并沒有變化;②字符串可以當做只讀數(shù)組,除了使用charAt()方法來查詢一個單一字符,也可以使用方括號的方式來訪問字符串中的單個字符(16位值),例如:

    s = "hello, world";
    s[0]   //=>"h"

  2.2 轉(zhuǎn)義字符

轉(zhuǎn)義字符 含義 
\o NUL字符(\u0000)
\b 退格符(\u0008)
\t 水平制表符(\u0009)
\n 換行符(\u000A)
\v 垂直制表符(\u000B)
\f 換頁符(\u000C)
\r 回車符(\u000D)
\" 雙引號(\u0022)
\' 撇號或單引號(\u0027)
\\ 反斜線(\u005C)
\xXX 由兩位十六進制數(shù)XX指定的Latin-1字符
\uXXXX 由4位十六進制數(shù)XXXX指定的Unicode字符
                                                                                                                                                                                                                                                                                                                               
注意:如果"\"字符位于沒有在表中列出的字符前,則忽略"\"。比如,"\#"和"#"等價。別忘了反斜線還有一個作用就是多行字符串中每行結(jié)束處使用反斜線。   

  3 布爾值

  在JavaScript中的值都可以轉(zhuǎn)換為布爾值。其中,null、undefined、0、-0、NaN、""(空字符串),這6個值會被轉(zhuǎn)換成false,false和這六個值有時稱做“假值”;其他所有值,包括對象(數(shù)組)都會轉(zhuǎn)換成true,true和這些值相應(yīng)的被稱做“真值”。注意:布爾值包含toString()方法,因此可以使用這個方法將字符串轉(zhuǎn)換成“true”或“false”,但它并不包含其他有用的方法。

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • easyui-edatagrid.js實現(xiàn)回車鍵結(jié)束編輯功能的實例

    easyui-edatagrid.js實現(xiàn)回車鍵結(jié)束編輯功能的實例

    下面小編就為大家?guī)硪黄猠asyui-edatagrid.js實現(xiàn)回車鍵結(jié)束編輯功能的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • javascript拖曳互換div的位置實現(xiàn)示例

    javascript拖曳互換div的位置實現(xiàn)示例

    一個div拖動互換位置的demo,還有很大優(yōu)化的空間,利用dom元素的dragstart/ondragover/ondrop事件完成,感興趣的可以了解一下
    2021-06-06
  • 微信小程序復(fù)選框組件使用詳解

    微信小程序復(fù)選框組件使用詳解

    這篇文章主要為大家詳細介紹了微信小程序復(fù)選框組件使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • javascript把15位身份證轉(zhuǎn)成18的函數(shù)

    javascript把15位身份證轉(zhuǎn)成18的函數(shù)

    非常不錯的,看了這個大家就明白身份證的運算規(guī)則了
    2008-10-10
  • 概述一個頁面從輸入URL到頁面加載完的過程

    概述一個頁面從輸入URL到頁面加載完的過程

    本文主要對一個頁面從輸入 URL 到頁面加載完的過程中都發(fā)生了什么事情進行概述,對我們學習網(wǎng)絡(luò)語言有一定的幫助,下面就跟小編一起來看下吧
    2016-12-12
  • JavaScript中Object基礎(chǔ)內(nèi)部方法圖

    JavaScript中Object基礎(chǔ)內(nèi)部方法圖

    本篇文章通過一張詳細的JavaScript中Object基礎(chǔ)內(nèi)部方法圖介紹了其基本用法,需要的朋友參考下。
    2018-02-02
  • async/await實現(xiàn)Promise.acll()簡介

    async/await實現(xiàn)Promise.acll()簡介

    Promise.all() 方法接收一個 promise 的 iterable 類型的輸入,并且只返回一個Promise實例,并且輸入的所有 promise 的 resolve 回調(diào)的結(jié)果是一個數(shù)組,這篇文章主要介紹了async/await實現(xiàn)Promise.acll()簡介,需要的朋友可以參考下
    2022-11-11
  • Bootstrap按鈕組件詳解

    Bootstrap按鈕組件詳解

    按鈕組和下拉菜單組件一樣,需要依賴于button.js插件才能正常運作。通過本文給大家詳細介紹Bootstrap按鈕組件,感興趣的朋友一起學習吧
    2016-04-04
  • canvas學習之API整理筆記(二)

    canvas學習之API整理筆記(二)

    本篇文章的主要內(nèi)容包括高級動畫、像素操作、性能優(yōu)化等知識點,講解每個知識點的同時還會有一些酷炫的demo。下面跟著小編一起來看下吧
    2016-12-12
  • JS監(jiān)聽dom高度變化幾種常用方法總結(jié)

    JS監(jiān)聽dom高度變化幾種常用方法總結(jié)

    我們在開發(fā)中會遇到一些需求,需要監(jiān)聽元素變化,比如元素屬性變化,元素大小變化,這篇文章主要給大家介紹了關(guān)于JS監(jiān)聽dom高度變化幾種常用方法的相關(guān)資料,需要的朋友可以參考下
    2023-10-10

最新評論

始兴县| 桐梓县| 麟游县| 汕尾市| 简阳市| 平罗县| 交城县| 乌鲁木齐市| 西吉县| 增城市| 顺昌县| 秀山| 桐梓县| 蓝山县| 洮南市| 黔东| 慈利县| 化德县| 古蔺县| 历史| 伽师县| 山东省| 沁水县| 承德市| 阿巴嘎旗| 治多县| 平原县| 定西市| 玛曲县| 高密市| 和田县| 长治县| 罗江县| 彝良县| 通许县| 葫芦岛市| 略阳县| 兴海县| 万安县| 赤水市| 宜黄县|