一、数据类型
字符串string
数值型number
布尔型boolean
undefined
unll
object
2、类型转换
(1)隐式类型转换:自动将一种数据类型转换到另一种数据类型的过程
console.log("50"-"30")//20
(2)显式类型转换(强制类型转换):需要手动转换目标类型
将其他数据类型转换为数值型
number()
Number("hello") NaN
Number(true) 1
Number("23aa") NaN
Number(false) 0
Number("") 0
Number(null) 0
Number(undefined) NaN
Number(NaN) NaN
parseInt(数字,进制)
parseInt("hello") NaN
parseInt(true) NaN
parseInt(false) NaN
parseInt("") NaN
parseInt(25,16) 37
parseInt(25,8) 21
parseInt(1001,2) 9
parseInt(25,10) 25
parseFloot()
parseFloat("23.34") 23.34
parseFloat("23.45.78")23.45
NaN:not a number 非数值
NaN不等于任何值
表示一个本来要返回数值的操作数而没有返回数值的情况
3、进制转换
(1)其他进制转换为10进制,输出的数字为10进制数
parseInt(25,16)
parseInt(25,8)
parseInt(25,10)
parseInt(101,2)
(2)十进制转换为其他进制
v1=23
v1.toString(16)
v1.toString(8)
v1.toString(2)
v1.toString(10)
4、常用方法
isNaN() 判断是否为非数值
isNaN("hello") true
isNaN(true) false
isNaN(false) false
isNaN("10") false
(1)、任何涉及NaN的操作都等于NaN
console.log(NaN/8)
console.log(NaN+8)
console.log(NaN-8)
console.log(NaN*8)
console.log(NaN==NaN)
console.log(0/0)
(2)、nan与任何值都不行等,包括它本身
console.log(NaN==NaN) false
console.log(0/0) NaN
5、常见的面试题
null*5 0
NaN*3 NaN
undefined*5 NaN
"hellw"*5 NaN
"23"+5 235
"23"*5 115
"23"*+5 28
isFinite() 是否正负无穷
console.log(isFinite(200e5)) true
console.log(isFinite(200e500)) false
6、布尔值
true false 小写
if(10>0){
} else{}
if((10>5)==true)等价于 if(10>5)
类型转换
boolean(23)
boolean(0)
boolean("hello")
boolean("")
boolean(null)
boolean(undefined)
true false
数值型 非空 0
字符型 非空串 “ ”
undefined 返回false
null 返回false
object 任意对象返回都是true
7、undefined类型
(1)、变量只声明,未赋值
var a
typeof(a)//undefined
alert(a)//undefined
alert(c)//报错
(2)、函数没有返回值,默认undefined
function f1(){
alert("hello")
}
var r=f1()
console.log(r)
(3)、调用函数时,应该提供参数,但没有提供,该参数返回undefined
function f1(a,b){
alert(a)
alert(b)
alert("hello")
}
var r=f1(3)
console.log(r)
8、null 空类型
var b=null
document.write(体验赔付(a))
var a=null
console.log(typeof(a))
b=null
if(b==null){}
var b={}
b.a=23
b.f1=function(){}
9、object
对象是一定属性和方法的封装体,通过对象引用可以引用这些方法和属性
10、***typeof***
(1)、数值类型,typeof返回number
console.log(typeof(1))
console.log(typeof(NaN))
console.log(typeof(Number.MAX_VALUE))
console.log(typeof(Number.MIN_VALUE))
console.log(typeof(Infinity))
(2)、字符串类型,typeof返回string
console.log(typeof("123"))
(3)、布尔类型,typeof返回boolean
console.log(typeof(true))
(4)、对象、数组、null,typeof返回object
console.log(typeof(window))
console.log(typeof(document))
console.log(typeof(Math))
console.log(typeof(nill))
console.log(typeof([]))
(5)、函数类型,typeof返回function
console.log(typeof(Date))
function f1(){}
console.log(typeof(f1))
typeof(eval)
(6)、未定义变量或undefined typeof返回的是undefined
console.log(typeof(c))
console.log(typeof(undefined))
二、流程控制语句
1、if(){
}
else if(){
}
else if(){
}else{
}
2、switch(){
case: 语句题;break;
case: 语句题;break;
case: 语句题;break;
default 语句体
}
var a=1
switch(a){
case 1:
case 2:
case 3:console.log("a3");break;
case 4:console.log("a4");
case 5:console.log("a5");
default:console.log("a6");
}
3、for(i=0;i<5;i++){
语句体
}
//for in /for each
4、while循环
5、do while循环 至少执行一次
6、break 立即跳出循环
continue 停止