getability---two

1:JavaScript定义了几种数据类型?哪些是复杂类型?区别

六种数据类型
原始:String、boolean、number
复杂:object因为它可以看做存放原始类型的容器,把对象细分又可以分为数组array、函数function、正则表达式regexp。null、undefined是两种特殊类型
es6又新加了一个新的基本类型:Symbol

2:typeof和instanceo的作用和区别?

typeof:检测给定变量的数据类型;
instanceo:判断一个变量是否是某个对象的实例,返回布尔值,只能用来判断对象和函数,不能判断字符串和数字等!

3:如何判断一个变量是数字、字符串、布尔、函数?

使用typeof判断;例如:typeof 123 //‘number’

4:NaN是什么?有什么特别之处?

NaN:not a Number,表示非数字。NaN和任何值都不相等,包括NaN自己;

5:如何把非数值转化为数值?

三个函数:Number()、parSeInt()、parSeFloat(),
空字符串转化为0,使用类似乎与Parseint()/parseFloat()的时候可以向函数传递第二个参数如:parseint(a,8)即调用8进制来解析;

6:==和===有什么区别?

==:比较数值是否相等;
===:比较数据类型和数值是否相等,即全等;

7:break与continue有什么区别?

break:用于强制退出循环体,执行循环后面的语句,
continue:用于退出本次循环,执行下次循环;

8:void 0 和undefined 在使用场景上有什么区别?

undefined可以在局部作用域中被重写,而void运算符返回的永远都是undefined
从用 void 0 代替 undefined 说起——伯乐在线
void运算符——MDN

9.以下代码的输出结果是?为什么?
console.log(1+1);    
console.log("2"+"4");  
console.log(2+"4"); 
console.log(+"4");

答案:2、24、24、4

10. 以下代码的输出结果是?
var a = 1;  
a+++a;  
typeof a+2;

答案:3、number2

11. 以下代码的输出结果是? 为什么
 var a = 1;
 var b = 3;
 console.log( a+++b );
答案:4

12. 遍历数组,把数组里的打印数组每一项的平方
 var arr = [3,4,5]
答案:for(var i=0;i<arr.length-1;i++){console.log(arr[i]*arr[i])}

13. 遍历 JSON, 打印里面的值
var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
答案:for(var i in obj){console.log(obj[i]);}

14. 以下代码输出结果是? 为什么 (选做题目)
14-1:
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) 
答案:number2
    运算符优先级看 typeof > + > > > ||
    先算出typeof a是number
    再算"number"+b,得到number2
    然后是c>0 ,得到true
    然后计算number2 || true 
    number2转化为布尔值为true,得出true
    返回number2

14-2:
var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
答案:bb、undefined
    从运算符优先级看console.log() > == > && > =
    console.log(‘bb’)输出bb
    判断d是否等于5,得出true
    判断true和console.log(),是否都为true 
    console.log('bb')无法被隐式转化为布尔值
    得到undefined
    undefined赋给data

14-3:
var data2 = d = 0 || console.log('haha')
console.log(data2)
 答案:haha、undefined
    运算符优先级 console.log() > ll > = 
    且赋值方向是从右向左的
    先执行console.log();
    判断0和console.log(‘haha’)是否其中有true
    得出undefined
    最终将undefined赋值给data2

14-4:
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
答案:2
    运算符优先级
    ! > + > =
    字符串前加!强制转换成布尔值,并转换成false
    !!代表双重否定 结果为TRUE

    !!"hello ,!!"from here!!"转换为true
    !"world"转换为false
    当布尔值相加时,会转换为1和0,分别由true和false转换而来
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型(或基本数据类型)和复杂类...
    徐国军_plus阅读 518评论 0 1
  • 标签: 我的笔记 ---学习资料:http://javascript.ruanyifeng.com/ 1. 导论 ...
    暗夜的怒吼阅读 866评论 0 1
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 840评论 0 0
  • 今天去买车了 觉得上班走路有点累 想去买辆好点的自行车 结果去了一看要2000块 旁边的人说 2000都掏了不如加...
    幸福亲子会阅读 171评论 0 0
  • 世间有四界,从上至下分别为:神界,人界,鬼界。而第四界在这三界之外为魔界。 这世间神以正为名,鬼以恶为名。...
    死舞阅读 196评论 0 0