運算符 |
會改變值的運算符 |
只有以下幾個 = ++, -- delete |
運算符的優先法則與結合律 |
p76 // TODO: 補充 |
|
|
數值運算 |
算數運算符 |
所有做爲64位浮點數進行運算(其餘語言的double) 運算前所有轉換爲double,不能轉換的結果爲NaN
二項運算符 |
+, =, *, /, % |
整數之間的除法結果也是浮點數! |
7/2 // 3.5 |
%結果也是浮點數 |
a%b 符號與a相同 a-bk的絕對值最想的數 |
沒法計算的話是NaN |
|
true做爲1,false做爲0 |
|
0/0 //NaN |
|
單項運算符 |
++,-- |
累加累減 |
+ |
不作任何處理 |
- |
改變符號 |
前置的先運算在評價式子 |
let a = 1; let b = ++a +1; // a = 2, b = 3 |
後置的先評價式子後運算 |
let a = 1; let b = a++ + 1;//a = 2, b = 2 |
|
|
|
|
|
代入運算符 |
=, +=, -=, *=, /=, %= |
|
|
Math Object的屬性與方法 |
屬性
e(天然對數的底) |
Math.E |
ln2 |
Math.LN2 |
ln10 |
Math.LN10 |
log e 2 |
Math.LOG2E |
lge log e 10 |
Math.LOG10E |
π(圓周率) |
Math.PI |
0.5的平方根 |
Math.SQRT1_2 |
2的平方根 |
Math.SQRT2 |
|
|
|
|
方法
絕對值 |
Math.abs(x) |
arccos(x) *arc是指弧度,也就是cos值對應的弧度的意思 |
Math.acos(x) |
arccosh(x) |
Math.acosh(x) |
arcsin(x) |
Math.asin(x) |
arcsinh(x) |
Math.asinh(x) |
arctan(x) |
Math.atan(x9 |
arctan2(y,x) y/x的acrtan |
Math.atan2(y,x) |
arctanh(x) |
Math.atanh(x) |
立方根 |
Math.cbrt(x) |
x以上的最小整數(包含自身) |
Math.ceil(x) 注意: Math.ceil(5) // 5 |
x轉爲32位無符號整數時開頭0的數量 |
Math.clz32(x) |
cos(x) |
Math.cos(x) |
cosh(x) |
Math.cosh(x) |
e的x次方 |
Math.exp(x) |
e的x次方 -1 |
Math.expm1(x) |
x如下的最大整數 |
Math.floor(x) |
最接近x的單精度浮點數(float) |
Math.fround(x) |
平方的和的根 |
Math.hypot(x1, x2, ...) |
a,b的32位整數乘法 就是運算比較快的乘法 |
Math.imul(a, b) |
log x e |
Math.log(x) |
log x 2 |
Math.log2(x) |
log x 10 |
Math.log10(x) |
log (x+1) e |
Math.log1p(x) |
最大值 |
Math.max(x1, x2, ...) |
最小值 |
Math.min(x1, x2, ...) |
x的p次方 |
Math.pow(x, p) |
0到1之間的隨機數 以當前時間爲種子 |
Math.random() |
x的四捨五入 |
Math.round(x) |
獲取x的符號 + =》1 0 =》 0 - =》-1 |
Math.sign(x) |
sin(x) |
Math.sin(x) |
sinh(x) |
Math.sinh(x) |
平方根 |
Math.sqrt(x) |
tan(x) |
Math.tan(x) |
去掉小數部分 |
Math.trunc(x) |
|
|
|
|
|
|
|
|
|
浮點數與偏差 |
Math.abs(a/b - 0.8) < 1e-10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
字符串的操做 |
字符串的鏈接 |
+
左右都是字符串 |
直接鏈接 |
一邊是字符串或者能夠轉換爲字符串的object |
另外一邊轉換成字符串來鏈接 |
其餘狀況 |
左右轉換爲數值相加 (轉換不了的做爲NaN) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
操做字符串的方法 |
注意: 字符串字面量自己不是Object 注意: 這些方法返回結果,可是字符串自己不變
生成字符串Oject |
var sample = new String("..."); 這樣的靜態值轉換爲object成爲wrapping(ラッピング) |
wrap obejct ラッパーオブジェクト |
var sample = "hello" var c = sample.length // 5 字符串不是Object,因此這裏自動生成一個即用即消的object var msgObj = new String(msg) var c = msgObj.length |
獲取長度 |
length |
獲取第n個字符的十進制代碼 ES6 |
codePointAt(n) |
獲取第n個字符 |
charAt(n) 也能夠和數組同樣,可是隻可讀,不能賦值 str[n] |
鏈接 |
concat(s1, s2, s3, ...) 直接鏈接 concat([s1, s2, s3, ...]) s1直接鏈接,後面的都加上"," concat() 能夠不要參數,什麼都不作 |
是否以s結尾 ES6 |
endsWith(s[,n]) 若是指定n, 則n做爲結尾位置來判斷 |
是否包含 ES6 |
includes(s[ ,n]) 若是指定n, 則n做爲開頭來搜索 |
最早出現的位置 |
indexOf(s) |
最後出現的位置 |
lastIndexOf(s) |
sort順序下是否在s先後 或者相同 |
localeCompare(s) 相同的時候返回0 |
用參數r正規表現匹配的結果 |
match(r) |
用給定格式來標準化 |
normalize([form]) |
重複n次鏈接本身 ES6 |
repeat(n) 0次清空,1次不變 ,2次開始纔是增長 |
用s2代替s1 |
replace(s1, s2) |
返回正規表現匹配到的開頭索引 |
search(r) |
獲取子字符串 |
slice(m,n) |
slice(m,n) 負數表明從後往前數 slice(n) 從n到最後 |
substring(m,n) |
不支持負參數,負的做爲0 後面參數小的話自動對調 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以s做爲分割符進行分割 |
split(s[, n]) 返回分割後的數組 指定n的話,n是分割元素的上限數 |
是否以s開頭 ES6 |
startsWith(s[, n]) 指定n的話,以n做爲開頭 |
大寫文字 |
根據位置轉換爲大寫 |
toLocaleUpperCase() |
不根據位置 |
toUpperCase() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小寫文字 |
根據位置轉換爲小寫 |
toLocaleLowerCase() |
不根據位置 |
toLowerCase() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
StringObject轉換爲字符串 |
toString() valueOf() 兩個同樣 |
去掉先後的空白 |
trim() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String構析函數的方法 |
1 |
String.length |
從參數的字符代碼生成字符串 |
String.fromCharCode() |
從CodePoint生成字符串 ES6 |
String.fromCharPoint() |
String的原型對象 |
String.prototype |
獲取模板的字符串 ES6 |
String.row() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
邏輯運算符與關係運算符 |
邏輯運算符 |
== |
等價 值相等true,不等false |
!= |
不等值 |
=== |
相同 左右類型相同,值相等true |
!== |
不相同 值或類型不一樣 |
<,> |
值大小關係 |
<=, >= |
值大於等於,小於等於 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
關係運算符 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
位運算 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
其餘運算符 |
判斷類型 typeof |
返回對象值數據類型,字符串 typeof "A" //string
數據 |
返回值 |
數字和NaN |
"number" |
字符串 |
"string" |
未定義值 (就一個undefined) |
"undefined" |
空值null |
"object" |
符號 Symbol("sample") |
"symbol" |
函數之外的對象 |
"object" |
函數 |
"function" |
|
|
|
|
|
三項運算符 ?: |
三項運算符 a = 5 ? a : 0 |
, |
for裏面用 |
動態運行代碼 |
eval_r("...") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
明確的類型轉換 |
數值--》字符串 |
直接和字符串用+接字符串 |
例: "abc" + 1//"abc1" 1 + "abc"//"1abc" |
Number的方法 |
轉換成字符 |
toString() 能夠帶參數(2~32),表示表達的進制 |
|
toLocaleString(n) |
指定小數點下位數 |
toFixed(n) 指定小數點如下的位數 |
指數表示 |
toExponential(n) n表示小數點下位數 |
有效位數表示 |
toPrecision(n) n指定有效位數 有效位數小於整數位數,科學計數法表示 |
|
|
|
|
|
|
|
|
|
|
|
String生成方法 |
String(n) n能夠使任意類型 生成的是字符串不是對象 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
字符串--》數值 |
自動轉換 |
var s = "2" s - 0 +s |
函數 |
parseInt(n,r) |
第二參數是說明第一參數是幾進製表達,默認10 |
parseFloat(n) |
轉爲浮點數 |
|
Number生成方法 |
Number(n) 生成的是數值不是數值對象 |
|
|
|
|
|
任意類型-》布爾值 |
!!x Boolean(x) 注: 數值裏0是false 字符串裏""是false |