False类型的数据:0 “空字符串”undefined null false NaN
NaN:not a number
强制转换成数字:Number(数据)
Number(false)
0
Number(true)
1
将纯数字字符串隐式转换成数字:-0 *1 /1
运算符:
算术运算符:
+ - * / ++ -- += -= *= /=
+ - * /的使用:
1.数据进行四则运算时,将数字自动转成数字进行计算
+:如果是字符串与字符串进行计算,将数据转换成字符串,及果实字符串拼接
2.任何数据与NaN进行加减乘除,结果都是NaN
3.遵循先乘除后加减,从左到右,先算括号里的
++:递增1
i++:先执行,再增加
++i:先增加,再执行
--:递减1
i--:先执行,再增加
--i:先增加,再执行
比较运算符:< < >= <= == === != !==
不同类型的数据比较:
与数字相比:转换成数字之后再比较大小
undefined.null!=0
undefined==null
False=0
10>2,但是“10”<“2”,原因是字符串比较大小时,比较的是ascll码(字符串相加)
==和===的区别:===除了验证值相等,还要比较数据类型
100==“100” true
100===“100” false
1==true true
1===true false
NaN==NaN false
isNaN()验证是否是非数字 true代表非数字 false代表数字,能用Number强制转换成数字的数据,结果是false,否则是true
document.write() 在页面输出括号中的结果
console.log() 在控制台输出括号中的结果
什么样的数据用isNaN验证结果是true?
Number强制转换的结果是NaN的数据
字符串(String).undefined.NaN.Number.String
js通常写在页面的哪些位置?
head body
n++/n--:取原来的值,之后的n去改变之后的值
++n/--n:直接改变之后的值
条件语句:
if,如果
语法:
if(条件){ //条件成立(true)时执行
//需要执行的语句
}
if...else........,else 否则,否定前面假设的条件
if(条件)
{
//条件成立时执行
}else{
//条件不成立时执行
}
js中默认三个弹窗
prompt,输入窗口点击确定,结果是输入的内容,点取消,结果是null
alert,弹窗,警告窗口
confirm,询问,确认窗口,结果是true或false
赋值语句的结果就是等号右边的数据
逻辑运算符:
!:否定
&&:与 和 并且 and,用于连接多个条件,当所有条件都成立时,结果才是true,有一个条件不成立,结果就是false
||:或者,用于连接多个条件,任意条件成立时,结果就是true,全都不成立时,结果就是false
%:取余
9%null NaN
if....else if...else
if语句中可以没有else if,也可以没有else
else之后不能出现else if
if语句中短路原则(前面满足条件时,不再判断其他条件)
判断条件是||的时候,前面条件满足之后忽略后面的条件(有一个条件成立true)
判断条件是&&的时候,前面条件不满足,忽略后面的条件(所有条件都是true才成立)
通过&&符号实现if判断,将&&前面看做if的条件,条件成立则执行后面
条件不成立时,结果是false
缺点:不能执行多条语句
通过||符号,实现默认的设置,||前面成立则取前面,不成立则取后面
三元运算符:
条件?成立时执行:不成立时不执行
执行多条语句时,语句之间用,隔开
??null运算符,与||类似
switch:分支
case:举例,比如
default:默认
break:中断
作用:不加break会导致后面条件失效
switch用于相等判断时,用的是严格相等(===)
数学函数:Math
获取最大值Math.max(数字1,数字2,....数字n)
获取最小值Math.min(数字1,数字2,....数字n)
获取绝对值 Math.abs(数字)
圆周率 Math.PI Π
向下取整 Math.floor(数字)获取小于该数字的最大整数
向上取整 Math.ceil(数字),获取大于该数字的最小整数
四舍五入 Math.round(数字)
幂 Math.pow(a,b),a的b次方
A**b a的b次方
随机数 Math.random(),生成值的范围0-1之间的小数,可以无限接近于0,可以无限接近于1
用途:
生成唯一的字符串
生成随机整数
循环:周而复始地执行相同的操作
循环需要终止条件
For( 初始化变量;终止条件;指针更新){
}
for循环的执行过程;
如果满足条件时,执行循环体中的语句
如果不满足条件,则结束循环
while循环,当...执行
do....while 做(执行)...当什么时候,先执行,再判断,至少执行一次
Break:强制中断
Continue:继续,跳出本次循环,进入下一次
共同点:都会组织后面语句的执行
Ctrl+alt+l格式化代码
当if语句或for只执行一行代码时,可以省略{}
数字
将数字字符串转换成数字:
Number()
+-*/
ParsenInt(字符串):如果首位不是数字,结果是NaN,将字符串转换成数字,遇到第一个非数字结束
parseFloat(字符串):和parseInt()用法类似,支持小数
.toFixed(小数位数):将数字保留几位小数(四舍五入),结果是字符串
获取:
日期对象:new Date();
年 .getFullyear()
月 .getMonth() 结果是0-11
日 .getDate()
时 .getHours() 24小时制
分 .getMinutes()
秒 .getSeconds()
毫秒 .getMilliseconds() 取值0-999
星期 .getDay() 0-6对应周日-周六
时间戳 .getTime() 单位是毫秒
字符串拼接
字符串用双引号或单引号包裹
双引号内部的双引号用单引号表示
单引号内部的单引号用双引号表示
正三角:设置底部边框粗细,由左右边框宽度决定三角宽度,底部边框设置颜色,其他边框透明
倒三角:设置顶部边框粗细,由左右边框宽度决定三角宽度,顶部边框设置颜色,其他边框透明
字符串
属性:
.length 长度,指字符个数 不能修改
索引:从0开始,最后一个字符索引是长度-1
方法:
.charAt()获取指定位置的字符
Str[索引]
如果访问不到,是undefined
.indexOf(“字符”) 获取字符的位置,,如果获取不到,结果是-1.常用于检测字符串中是否包含某字符
.lastIndexOf(“字符”) 与indexOf用法一致,从后向前查找第一个匹配的字符(并不是从后向前数)
.search()与indexOf用法一致,支持正则表达式
.toUpperCase() 转大写
.toLowerCase() 转小写
.substring(开始索引a,结束索引b)
从索引a截取到索引b(不包括索引b的字符),
如果只有a时,默认截取到字符串末尾
区别:
索引是负数时,将索引看作0
a>b时,将a,b调换位置截取
.slice(开始索引a,结束索引b)
从索引a截取到索引b(不包括索引b的字符),
如果只有a时,默认截取到字符串末尾
字符串掐头去尾从1,-1
区别:
索引是负数时,代表倒数第几个
只有一个负数索引,可以用于截取最后几个字符
.substr(开始索引a,截取长度len)
从索引a截取len个字符,如果只有a时,默认截取 到字符串末尾
长度-1
.replace(要查找的字符串,替换成的字符串)
查找、替换第一个
.relaceAll(要查找的字符串,替换成的字符串)替换全部
indexOf与search的区别?
indexOf用于具体字符查找
search包含indexOf的用法,同时支持正则表达式
==与===有什么区别?==判断值 ===判断值和类型
switch语句中的default的作用是什么?
默认值条件,当所有case都不成立时执行,可以写在switch中任何位置