当前位置 博文首页 > m0_45291815的博客:JavaScript手册
/* 注释,打印 */
/*
多行注释
多行注释
*/
/**
* 函数注释
* @param { 入参类型 } 入参变量名 //入参描述
* @returns { 返回类型 } // 返回描述
*/
// 单行注释1
// 单行注释2
console.log('console.log打印')
console.error('console.error打印')
document.write('document.write写入到页面')
alert('弹窗输出')
confirm('判断框输出')
const str = prompt('输入框输出', '默认文本') // 返回文本复制给变量
var a = 1
let b = 'string'
const c = true
// 简单变量使用(typeof 变量)获取变量类型,在进行比较判断
console.log(typeof a); // 打印未Number
var obj = {}
let arr = []
const date = new Date()
function fn() {}
const fn = () => {}; es6函数写法
// const fn = item => item; 相当于 function fn(item) { return item }
const reg = new RegExp('reg')
// 复杂类型使用(变量 instanceof 类型构造函数)判断
console.log(obj instanceof Object)
// 如果使用typeof判断,这全部为object
NaN
:其他类型转数字类型无法转换时,就变成数字类型特别值NaN
null
:表示定义了,但是没有赋值undefined
:表示没有定义过typeof
检查简单数据类型instanceof
检查全部数据类型parseInt
:取整
const a = parseInt(num)
对num进行取整, 并返回a数字类型。
特别:const a = parseInt('123ab4c')
=> a=123
数字类型
parseFloat
:取浮点
基本等同于上面parseInt
,区别:可以处理小数
toFixed
:四舍六入
const a = num.toFixed(2)
四舍六入,保留两位小数,返回字符串
isNaN
:数字类型判断
const a = isNaN(num)
;判断是否为数字,false为数字,true不为数字
赋值:var a = 1
; a赋值为1
二元四则运算:+-*/
,绝对值:~
, 取余:%
一元运算:++ -- += -= %=
逻辑运算:> < >= <= == === != !== 与:& 或:| 非:! && ||
短路运算:a === b && console.log(a);
三元运算:const str = a ? b : c;
a为true时,str=b。反之str=c
可选链操作符:obj?.key
let a = { b: 1 }
console.log(a.b.c) // 打印undefined
console.log(a.d.c) // 会报错,c 不能从undefined中读取
console.log(a.d?.c) // 不会报错
// 使用场景:res.data?.data 返回结果可能不含某个值,道咋取值报错
const new = Number(变量)
const new = Boolean(变量)
const new = String(变量)
const new = 变量.toString()
const num = str.charCodeAt()
const str = String.formCharCode(num)
其他情况:
数字.toFiexd()
const new = 变量 + 字符串
;new转为字符串类型const new = '1' / 2
; new转为数字类型const new = 10.toSting(2)
;其他进制同理parseInt(2进制, 2)
;其他进制同理if
语句
if (判断) { console.log('执行') }
if else
语句
if (判断) {
console.log('执行a')
} else if (判断) {
console.log('执行b')
} else { console.log('执行c') }
// 缩写
if (判断) console.log('执行a')
else if (判断) console.log('执行b')
else console.log('执行c')
switch case
语句
switch(变量){
case 值1: // 当变量 === 值1是执行下面语句
console.log('执行1');
break; // 没有break,会继续向下执行判断
case 值2:
console.log('执行2');
break;
default: // 都不匹配时执行
console.log('执行3');
}
do while
:
let a = 0;
do {
console.log(a);
a++;
} while (a < 5);
while
:
let a = 0;
while (a < 5) {
console.log(a);
a++;
}
for
:循环语句
for ( let a = 1; a <= 10; a++ ) {
if (a === 5) continue;
console.log(a);
}
for-in
const obj = { a: 1, b: 2 }
const arr = ['a', 'b', 'c']
for ( let key in obj ) {
console.log(key, obj[key])
}
fot (let index in arr) {
console.log(index, arr[index])
}
for-of
const obj = { a: 1, b: 2 }
const arr = ['a', 'b', 'c']
for ( let value of obj ) {
console.log(value)
}
fot (let value of arr) {
console.log(value)
}
try - catch
const { a } = new Object()
try() { console.log(a) } // 尝试执行
catch() { console.log('发生错误') } // 执行失败打印
// 不会阻塞后面代码的执行
break
:循环停止,或者语句停止
continue
:跳过一次循环
for (let i = 0; i < 10; i++) {
// 跳过4
if (i === 4) { continue; }
console.log(i);
}
循环嵌套
for (let i = 0; i <= 10; i++) {
for(let j = 0; j <= 10; j++) {
console.log("i=" + i + "; j=" + j);
}
}
匿名函数调用:
(function () { console.log('执行') })()
~function() { console.log('执行') }()
Math
数学Math.random()
返回0<x<1的随机数,可以通过加减乘除转换为其他区间的随机数Math.abs(x)
返回x的绝对值Math.round(x)
返回x的四舍五入Math.PI
, 等于180度Math.pow(x, y)
x的y次方Math.log(x)
e的x的对数,变形为 x的y的对数 Math.log(y) / Math.log(x)
Math.sin(x)
Math.cos(x)
Math.tan(x)
Math.ceil(x)
Math.floor(x)
Math.max(1, 2, ...)
变形:Math.max.apply(Math, arr)Math.min(1, 2, ...)
num = new Big(num)
// 输入一模一样,但是不会出现精度丢失const color = "#" + parseInt(Math.random() * 0xfffff).toString(16)
正则没事连两下,不然会忘记
const reg = new RegExp('test')
const reg = /test/
匹配:reg.test(src)
; 判断src是否含有匹配reg的字段,反boolean
搜索:src.search(reg)
; 搜索src是否还有匹配reg的字段,有反下标,没有反-1
提取:src.match(reg)
; 提取src所有匹配reg的字段,反回数组
提取:reg.exec(src)
; 提取src匹配reg的第一个字段,反结果
替换:src.replace(reg, otherSrc)
; 将src匹配reg的字段换成otherSrc,返回新的字符串
替换:
src.replace(reg, searchSrc => {
return `<span style='color:red'>${searchSrc}</span>`
})
全局模式标签:g; /test/g
或 new RegExp('text', 'g')
不分大小写标签:i; /test/
i
多行模式标签:m; /test/m
混合:/test/gi
/ 正则元字符 /
^
; 如:/^H/i
$
; 如:/H$/
/^h[\d]+w$/ig
\d
\D
\w
\W
\s
\S
.
重复无限次[0, +∞):*
; 如:/[0-9]*/
最低1次[1, +∞): +
; 如:/[0-9]+/
[0, 1]次
: ?
; 如:/[0-9]?/
重复n-1次: {n}
; 如:/[0-9]{9}/
[n, +∞):{n, }
; 如:/[0-9]{9,}/
[n, m-1]
: {n, m}
; 如:/[0-9]{5, 9}/