运算符 |
会改变值的运算符 |
只有以下几个 = ++, -- 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 |