首頁 web前端 js教程 JavaScript的型別、值、變數小結_javascript技巧

JavaScript的型別、值、變數小結_javascript技巧

May 16, 2016 pm 03:50 PM
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。當一個負數發生下溢時傳回特殊值「負零」。負零和整零基本上是相等的(甚至可以使用嚴格相等===來測試),除了作為除數之外:

var zero = 0;  //正零值
var negz = -0;  //负零值
zero === negz  //表达式返回值为true
1/zero === 1/negz  
//表达式返回值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等並不能精確的表示。例如:

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位值得个数。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位值),例如:

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

登入後複製

  2.2 轉義字元

轉義字 意義 
o NUL字元(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”,但它並不包含其他有用的方法。

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
如何使用Ajax從PHP方法取得變數? 如何使用Ajax從PHP方法取得變數? Mar 09, 2024 pm 05:36 PM

使用Ajax從PHP方法取得變數是Web開發中常見的場景,透過Ajax可以實作頁面無需刷新即可動態取得資料。在本文中,將介紹如何使用Ajax從PHP方法中取得變量,並提供具體的程式碼範例。首先,我們需要寫一個PHP檔案來處理Ajax請求,並傳回所需的變數。下面是一個簡單的PHP檔案getData.php的範例程式碼:

Python 語法的心智圖:深入理解程式碼結構 Python 語法的心智圖:深入理解程式碼結構 Feb 21, 2024 am 09:00 AM

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

什麼是Java中的實例變數 什麼是Java中的實例變數 Feb 19, 2024 pm 07:55 PM

Java中的實例變數是指定義在類別中,而不是方法或建構子中的變數。實例變數也稱為成員變量,每個類別的實例都有自己的一份實例變數副本。實例變數在創建物件的過程中被初始化,以及在物件的生命週期中保存並保持其狀態。實例變數的定義通常放在類別的頂部,可以用任何存取修飾符來聲明,可以是public、private、protected或預設存取修飾符。這取決於我們希望這個變

視訊矩陣帳號怎麼做?它的矩陣帳號都有哪些類型呢? 視訊矩陣帳號怎麼做?它的矩陣帳號都有哪些類型呢? Mar 21, 2024 pm 04:57 PM

隨著短影片平台的盛行,影片矩陣帳號行銷已成為一種新興行銷方式。透過在不同平台上建立和管理多個帳號,企業和個人能夠實現品牌推廣、粉絲成長和產品銷售等目標。本文將為您探討如何有效運用視訊矩陣帳號,並介紹不同類型的視訊矩陣帳號。一、視訊矩陣帳號怎麼做?要做好視訊矩陣帳號,需要遵循以下幾個步驟:首先要明確你的影片矩陣帳號的目標是什麼,是為了品牌傳播、粉絲成長還是產品銷售。明確目標有助於制定相應的策略。 2.選擇平台:根據你的目標受眾,選擇合適的短影片平台。目前主流的短視頻平台有抖音、快手、火山小影片等。

深入理解C語言中的const 深入理解C語言中的const Feb 18, 2024 pm 12:56 PM

C中const的詳解及程式碼範例在C語言中,const關鍵字用來定義常數,表示該變數的值在程式執行過程中不能被修改。 const關鍵字可以用來修飾變數、函數參數、函數傳回值。本文將對C語言中const關鍵字的使用進行詳細解析,並提供具體的程式碼範例。 const修飾變數當const用來修飾變數時,表示變數為唯讀變量,一旦賦值就無法再修改。例如:constint

jQuery使用實踐:判斷變數是否為空的幾種方式 jQuery使用實踐:判斷變數是否為空的幾種方式 Feb 27, 2024 pm 04:12 PM

jQuery是一個廣泛應用於Web開發中的JavaScript庫,它提供了許多簡潔方便的方法來操作網頁元素和處理事件。在實際開發中,常會遇到需要判斷變數是否為空的情況。本文將介紹使用jQuery判斷變數是否為空的幾種常用方法,並附上具體的程式碼範例。方法一:使用if語句判斷varstr="";if(str){co

如何在JavaScript中取得HTTP狀態碼的簡單方法 如何在JavaScript中取得HTTP狀態碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

See all articles