麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

JavaScript的類型、值和變量小結

2024-05-06 16:22:59
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了JavaScript的類型、值和變量小結的相關資料,需要的朋友可以參考下

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

1 數字

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

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

1.1 算術運算的溢出

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

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

 

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

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

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

1.2 二進制浮點數和四舍五入錯誤

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

 

 
  1. var x = 0.3 -0.2; //x=0.09999999999999998 
  2. var y = 0.2 - 0.1; // y=0.1 
  3. x == y //false 
  4. x == 0.1 //false 
  5. y == 0.1 //true 
  6. 0.1 == 0.1 //true 
  7. var z = x + y; //z=0.19999999999999998 

2 文本

2.1 字符串、字符集

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

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

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

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

 

 
  1. s = "hello, world"
  2. s[0]   //=>"h" 

2.2 轉義字符

轉義字符含義

/oNUL字符(/u0000)

/b退格符(/u0008)

/t水平制表符(/u0009)

/n換行符(/u000A)

/v垂直制表符(/u000B)

/f換頁符(/u000C)

/r回車符(/u000D)

/"雙引號(/u0022)

/'撇號或單引號(/u0027)

//反斜線(/u005C)

/xXX由兩位十六進制數XX指定的Latin-1字符

/uXXXX由4位十六進制數XXXX指定的Unicode字符

注意:如果"/"字符位于沒有在表中列出的字符前,則忽略"/"。比如,"/#"和"#"等價。別忘了反斜線還有一個作用就是多行字符串中每行結束處使用反斜線。

3 布爾值

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 毛片视频在线免费观看 | 欧美一级毛片美99毛片 | 久久99精品久久久久久国产越南 | 狠狠干五月天 | 美女一级毛片 | 国产午夜亚洲精品 | 久久91精品久久久久清纯 | 国产精品一区二区羞羞答答 | 国产亚洲综合精品 | www.99tv| 久久久久亚洲精品 | 久草手机视频在线观看 | 国内精品久久久久久2021浪潮 | 黄色网址在线免费 | 免费观看一区二区三区视频 | 成人三级电影网址 | 一级黄色片武则天 | 亚洲射情| 成年性羞羞视频免费观看 | 欧美精品一区二区性色 | 午夜精品在线视频 | 国产免费观看一区二区三区 | 欧美一级做一a做片性视频 日韩黄色片免费看 | 欧美粗暴analvideos | 久久成人免费观看 | 久久久久久亚洲综合影院红桃 | 欧美偷拍一区二区 | 九色新网址 | 毛片a片免费看 | 久久伊人国产精品 | 激情亚洲一区二区三区 | 欧美城网站地址 | 操穴视频| 91社区在线观看 | 亚洲无av| 久久新网址 | 精品69人人人人 | 四季久久免费一区二区三区四区 | 激情小说另类 | 一区二区三区日韩精品 | 丰满年轻岳中文字幕一区二区 |