ECMAScript
0.
基本类型: boolean、number、string、null、undefined、
引用类型: Array、Object(深浅拷贝)
注释
单行: //
多行: /**/
类型
同:字符串、布尔值、数组、对象、null
异:数字 ---------------- 数字(整型、浮点) undefine ----------------------------- resojurce
运算符
算术: +、-、*、/、%
增量/减量(递增/递减): ++、--
比较(返回布尔值):>、<、>=、<=、==、!=(php还有<>)、===、!===
赋值:+=(php是.=)、-=、*=、/=
逻辑:&&、||、!
三元:expression ? expresion2 : expresion3
程序流程控制
if、switch
for(forEach/for of)、while(do...while)
break、continus
(js: for..in)
数组
声明
var arr=new Array()
var arr = []
$arr = array()
$arr = []
长度
length(同字符串)
count()
增
push(num1,numb2,...)返新数组长度
unshift(num1,numb2,...)返新数组长度
splice(键、删除个数(0)、替换)返删除的数组,如果有
array_push()
array_unshift()
删
pop()返删除的数字
shift()返删除的数字
splice(键、删除个数)返删除的数组,如果有
array_pop()
array_shift()
改 (键 => 值)
合并
slice(键1、键2)返原数组键1到键2 - 1的数组,不改变原数组
concat()返原合并数组,不改变原数组
str_replace()、str——ireplace()
排序/反转
sort(function(a,b){return a-b})、reverse()返原反转后的数组,改原数组
sort()、rsort()、rsort()、rsort()
php: (range(1,100)-------------in_array())
转换
Arr => Str
Str => Arr
join()
split(',')
explode(',',$str)
implode('|',$arr)
字符串
长度
length
strlen()
增
+
.
查(值 => 键)
indexOf(值,开始检索键可选)返检索的键,没有则返-1(可用于数组)
lastIndexOf(值)返检索的键,没有则返-1(可用于数组)
search(值/正则)返检索的键,没有则返-1
strpos(原/查)-----stripos()
查(键 => 值)
charAt(键)
改(值 => 键)
substr(键,个数)返新字符串,没有则返空字符串
substring(键1,键2)返键1到键2-1新字符串,没有则返空字符串
substr(原s,键,个数)
strstr(原s,查s)
大小写转换
toLowerCase()、toUpperCase()不改变原字符串
n/2br、htmlspecialchars
调试
alert()、console.log('%c ', 'color:blue') | toString()、typeof、instaceof、isArray()、test
echo、print_r、var_dump、(prinf、printf、sprintf)
数组累加器:array.reduce(function(total, currentValue, currentIndex, arr), initialValue) -- (参1函数;参2初始值,不传则数组的第一个; 函数主要减少手动遍历)
类型转化
字符串类数组(用数组的方法时,弱转化。例: 'dfjdfkd'.[0])
JSON.parse() / JSON.stringify()
toString(): 把一个逻辑值转换为字符串,并返回结果
filter 过滤掉数组
toFixed 四舍五入,0-20保存后面小数点
Number() 强制转化数字
取整 ~~
类型转化
Math: abs ceil/floor/round(Math.round四舍五入取整, toFixed四舍六入五考虑) max/min pow/sqrt random
小明考试考砸,第一次被他爸打10,下次双倍,一年中被打了13次,总共到了多少下? let sum = 0; let n = 10; let six = ''; for(let i=0;i<13;i++){ let k = Math.pow(2,i) * n; sum += k; // console.log(i+1+'次='+k) six += k.toString() + (i==12 ? '' : '+'); } console.log(`${six} = ${sum}(总和)`) // 10+20+40+80+160+320+640+1280+2560+5120+10240+20480+40960 = 81910(总和)
- 按位与(NOT ~):取最小的值
- 按位或(AND &):取最大的值
- 按位非(OR |):反码(补码:原码的反码加1)
- ~~:浮点转化为整数
Unicode (统一码、万国码、单一码)
String.fromCharCode() 可用于切割字符串的空格32(二进制00100000
)
console.log(String.fromCharCode(72,101,108,108,111)) // hello
stringObject.charCodeAt(index) 返回值在 0 - 65535 之间
'Hello'.charCodeAt(0) // 72
Unicode,UTF-32,UTF-16,UTF-8到底是啥关系?
in操作符检查属性在对象是否存在
one:for(...){
two:for(...) {
break one;
}
}
ES1:1997 年 6 月
ES2:1998 年 6 月
ES3:1999 年 12月
ES4:未通过(政治因素)
ES5:2009 年12 月
ES6:2015 年 6 月每年一版
https://www.runoob.com/jsref/jsref-obj-array.html
类型判断:https://www.cnblogs.com/onepixel/p/5126046.html(typeof,instanceof,原型toSring.call())