美文网首页
Web17.数据类型&运算符&流程控制语句

Web17.数据类型&运算符&流程控制语句

作者: FiredEarthMusic | 来源:发表于2017-11-10 20:49 被阅读6次

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.png
console.log(1+1)        //2          两个数字相加
console.log("2"+"4")  //24        两个字符串相加   字符串的拼接
console.log(2+"4")    //24        将一个字符串尝试转化为数字 然后相加
console.log(+"4")      //4          只有一个数字参数时返回其正数值

题目10: 以下代码的输出结果是?

10.png
var a = 1; // 声明 a = 1
a+++a; // (a++)+a 结果:2
typeof a+2;// (typeof a)+2 结果:"number2"

题目11:以下代码的输出结果是? 为什么

11.png
var a = 1; //声明 a = 1
var b = 3;//声明 b = 3
console.log( a+++b ); 控制台:(a++)+b 结果:4

题目12:遍历数组,打印数组每一项的平方

12.png
var arr = [3,4,5]
for(var i = 0; i < arr.length; i++){
    console.log(arr[i]*arr[i])
}

题目13:遍历 JSON, 打印里面的值

13.png
var obj = {
    name: 'hunger',
    sex: 'male',
    age: 28
}

for(var key in obj){
    console.log(obj[key])
}

题目14:以下代码输出结果是? 为什么 (选做题目)

14.png
number2

//bb
//undefined

//haha
//undefined

//2
//undefined

相关文章

网友评论

      本文标题:Web17.数据类型&运算符&流程控制语句

      本文链接:https://www.haomeiwen.com/subject/brmyuxtx.html