前言: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”,但它並不包含其他有用的方法。
以上所述就是本文的全部內容了,希望大家能夠喜歡。

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器