JS七种数据类型
String Number Boolean Array Object Null Undefined Symbol
对象又可以分成三个子类型:
狭义的对象 object
数组 array
函数 function
数值 字符串 布尔值称为原始类型,不能再细分,将对象成为复杂类型,
复杂类型往往是多个原始类型的值的集合
三种方法
typeof 运算符
instanceof 运算符
Object.prototype.toString方法
typeof运算符可以返回一个值的数据类型
typeof 123
typeof '123'
题目1:JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
1.七种数据类型 :number string boolean undefined null object symbol
2.数值 字符串 布尔值 称为原始类型的值 即它们是最基本的数据类型,不能再细分了
3.对象称为复杂类型的值 因为一个对象往往是多个原始类型的值的合成
undefined和null 一般看成两个特殊值
对象:狭义的对象 数组 函数 正则表达式
4.原始类型不能再细分 复杂类型可以
题目2:typeof和instanceof的作用和区别?
typeof运算符返回一个字符串,指示未经计算的操作数的类型
instanceof 测试一个对象在其原型链中是否存在一个构造函数的prototype属性,
用来检测constructor.prototype是否存在于参数object的原型链上
题目3:如何判断一个变量是否是数字、字符串、布尔、函数
使用typeof运算符
typeof 32 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number';
typeof Number(1) === 'number'
typeof "" === 'string';
typeof "bla" === 'string';
typeof true === "boolean";
typeof false === "boolean";
typeof Boolean(true) === "boolean";
typeof function(){} === 'function';
typeof Math.sin === 'function';
题目4:NaN是什么? 有什么特别之处?
Not a Number
特别之处:
NaN != NaN //true
NaN === NaN //false
题目5:如何把非数值转化为数值?
parseInt()
parseInt('123') //123
parseInt(1.23) //1
parseInt('1.23') //1
parseInt('8a') //8
parseInt('15e2') //15
parseInt('abc') //NaN
parseFloat()
parseFloat('3.14') //3.14
parseFloat(' ') //NaN
题目6:==与===有什么区别
== 是近似相等
=== 是绝对相等
题目7:break与continue有什么区别
break 用于强制退出循环体,执行循环后面的语句
continue 用于退出本次循环,执行下次循环
题目8:void 0 和 undefined在使用场景上有什么区别
void 执行一个表达式 返回undefined
void 0 //undefined
有些情况下undefined可以被赋值 我们可以用void 0判断
比如:
function fn() {
var undefined = 3;
var a;
if(a===undefined){
console.log('===')
}else{
console.log('!==')
}
} //这里undefined被赋值了
fn()
//这里用void 0作判断
function fn(){
var undefined = 3;
var a;
if( a=== void 0){
console.log('===')
}else{
console.log('!==')
}
}
fn()
//IE5.5-8 undefined可以被赋值
//IE9+以及现代浏览器不可以被赋值
题目9:以下代码的输出结果是?为什么?
9.pngconsole.log(1+1) //2 两个数字相加
console.log("2"+"4") //24 两个字符串相加 字符串的拼接
console.log(2+"4") //24 将一个字符串尝试转化为数字 然后相加
console.log(+"4") //4 只有一个数字参数时返回其正数值
题目10: 以下代码的输出结果是?
10.pngvar a = 1; // 声明 a = 1
a+++a; // (a++)+a 结果:2
typeof a+2;// (typeof a)+2 结果:"number2"
题目11:以下代码的输出结果是? 为什么
11.pngvar a = 1; //声明 a = 1
var b = 3;//声明 b = 3
console.log( a+++b ); 控制台:(a++)+b 结果:4
题目12:遍历数组,打印数组每一项的平方
12.pngvar arr = [3,4,5]
for(var i = 0; i < arr.length; i++){
console.log(arr[i]*arr[i])
}
题目13:遍历 JSON, 打印里面的值
13.pngvar obj = {
name: 'hunger',
sex: 'male',
age: 28
}
for(var key in obj){
console.log(obj[key])
}
题目14:以下代码输出结果是? 为什么 (选做题目)
14.pngnumber2
//bb
//undefined
//haha
//undefined
//2
//undefined
网友评论