一、数据类型
字符串 string
数值型 number
布尔型 boolean
未定义型 undefined
空 null
对象 object
1.数值型
v1=081
// 如果超出八进制 按十进制输出
console.log(v1);//81
v2=20e500
console.log(v2);//infinity正无穷大
v3=-20e500
console.log(v3);//-infinity 负的无穷大
js的最大表示范围 2的53次幂~2的负53次幂
2.类型转换
(1)隐式类型转换:
自动将数据从一种数据类型转换为另一种数据类型的过程
相减 相乘
(2)显示类型转换(强制类型转换)
需要手动转换到目标类型
将其他数据类型转换为数值型
Number()
全数字才识别 true false 空可转换
console.log( Number("hello")); //NaN
console.log(Number("23aa")); //NaN
console.log(Number(true)); //1
console.log(Number(false)); //0
console.log(Number("")); //0
console.log(Number("30e5")); //3000000
console.log(Number(null)); //0
console.log(Number(undefined)); //NaN
console.log(Number(NaN)); //NaN
console.log(Number("12.56")); //12.56
parseInt()
只识别数字
console.log(parseInt(0.12)); //0
console.log(parseInt(12.34)); //12
console.log(parseInt(true)); //NaN
console.log(parseInt(false)); //NaN
console.log(parseInt("")); //NaN
console.log(parseInt("30e5")); //30
console.log(parseInt(25,16)); //37
console.log(parseInt(25,8)); //21
console.log(parseInt(1001,2)); //9
console.log(parseInt(25,10)); //25
parseFloat()
console.log(parseFloat("23.34")); //23.34
console.log(parseFloat("23.45.78")); //23.45
NaN:not a number 非数值
表示一个本来要返回数值的操作数而没有返回数值的情况
NaN不等于任何数值
3.进制转换
(1)其他进制转换为十进制:
转换成十进制可以换为中文
parseInt(25,16)//16进制转换为十进制
parseInt(25,8)//8进制转换为十进制
parseInt(25,10)//10进制转换为十进制
parseInt(25,2)//2进制转换为十进制
(2)十进制转换为其他进制
v1=23
v1.toString(16)
v1.toString(8)
v1.toString(2)
v1.toString(10)
4.常用方法:
(1)isNaN() 判断是否为非数值
(2)isFinite() 判断是否为正负有穷
console.log(isFinite(200e500)); //false
console.log(isFinit(200e5)); //true
console.log(isFinite(200e500)); //false
console.log(isFinite(200e5)); //true
console.log(isNaN("hello")); //true
console.log(isNaN(true)); //false
console.log(isNaN(false)); //false
console.log(isNaN("10")); //false
// 1.任何涉及NaN的操作,都返回NaN
console.log(NaN/8);
console.log(NaN+8);
console.log(NaN-8);
console.log(NaN*8);
// 2. NaN与任何值都不相等,包括他本身
console.log(NaN==NaN); //false
console.log(0/0); //NaN
5.常见的面试题
console.log(null*5); //0 隐式转换把null转换为0
console.log(NaN*3); //NaN
console.log(undefined*5); //NaN 隐式转换把undefined转换为NaN
console.log("hello"*5); //NaN
console.log("23"+5); //235
console.log("23"*5); //115
console.log("23"*1+5); //28
6.布尔值
true false 小写
if(10>0){
}else{}
if((10>5)==true){}
等价于
if(10>5){}
if(!10>5){}
类型转换
boolean()
console.log(Boolean(23)); //true
console.log(Boolean(0)); //false
console.log(Boolean("hello")); //true
console.log(Boolean("")); //false
console.log(Boolean(null)); //false
console.log(Boolean(undefined));//false
true false
数值型 非空就为ture 0
字符型 非空串为true ""
undefined 返回false
null 返回false
object 任意对象返回的都是true
7.undefined类型(变量只声明,未赋值)
(1)变量只声明,未赋值
var a
typeof(a)//undefined
alert(a)//undefined
(2)函数没有返回值,默认
alert(c) //报错,没有被定义
(3)调用函数时,应该提供参数,但没有提供,该参数返回undefined
function f1(a,b){
alert(a) //3
alert(b) //undefined
}
f1(3)
8.null 空类型
var a=null
console.log(typeof(a));//object null是一种特殊的object
var b={}
b.a=23
b.f1=function(){}
b=null
if(b==null){}
9.object 对象类型
对象就是一定属性和方法的封装体,通过对象能够引用到这些方法和属性。
10、****typeof*****
(1)数值类型:typeof返回number
console.log(typeof(Infinity)) //number
console.log(typeof(1)); //number
console.log(typeof(NaN)); //number
console.log(typeof(Number.MAX_VALUE)); //number
console.log(typeof(Number.MIN_VALUE)); //number
console.log(typeof(Infinity)); //number
(2)字符串类型 typeof返回string
console.log(typeof("123")); //string
(3)布尔类型,typeof返回boolean
console.log(typeof(true)); //boolean
(4)对象、数组、null,typeof返回object
console.log(typeof(window)); //object
console.log(typeof(document)); //object
console.log(typeof(null)); //object
console.log(typeof(Math)); //object
console.log(typeof([])); //object
(5)函数类型,typeof返回function
function f1(){}
console.log(typeof(f1)); //function
console.log(typeof(eval)); //function
// console.log(typeof(Date)); //function
(6)未定义的变量或undefined本身 返回的是undefined
// console.log(typeof(c)); //undefined
// console.log(typeof(undefined)); //undefined
二、流程控制语句
1、 if(){
}else if(){
}else{
}
2.流程控制语句
switch(){
case:语句体;break;
case:语句体;break;
case:语句体;break;
default 语句体
}
3.for循环
for(var i=0;i<=5;i++){
语句体
}
//for in /for each
4.while循环
5.do while至少执行一次
6.break:立即跳出循环,结束所有循环
continue:停止当前循环,进入下一次循环