JS数据类型、运算符、流程控制语句

2017-12-17  本文已影响0人  Tuuu

JavaScript 定义了几种数据类型?哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?

  1. 数据类型:

    • 数值(number):整数和浮点数(比如1和3.14)
    • 字符串(string):字符组成的文本(比如“Hello World”)
    • 布尔值(boolean):true(真)和false(假)两个特定值
    • undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
    • null:表示无值,即此处的值就是“无”的状态。
    • 对象(object):各种值组成的集合(又分为3个子类型)
      • 狭义的对象(object)
      • 数组(array)
      • 函数(function)
  2. 通常,我们将数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。

typeof 和 instanceof 的作用和区别?

  1. typeof运算符可以返回一个值的数据类型:
    • 原始类型:
      数值、字符串、布尔值分别返回numberstringboolean
      typeof 123 // "number"
      typeof '123' // "string"
      typeof false // "boolean"
      
    • 函数
      函数返回function
      function f() {}
      typeof f
      // "function"
      
    • undefined
      undefined返回undefined
      typeof undefined
      // "undefined"
      
    • 其他
      除此以外,其他情况都返回object。
      typeof window // "object"
      typeof {} // "object"
      typeof [] // "object"
      typeof null // "object"
      
  2. instanceof 运算符
    • 由于typeof对数组(array)和对象(object)的显示结果都是object,可以通过instanceof运算符做到区分
      var o = {};
      var a = [];
      o instanceof Object // true
      a instanceof Array // true
      
  3. 区别
    • typeof是一元运算符,返回值为字符串,该字符串用来说明原数据的数据类型
    • instanceof用于判断某个变量是否是某个对象的实例,返回值布尔类型.

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

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

如何把非数值转化为数值

==与===有什么区别

break与continue有什么区别

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

以下代码的输出结果是?为什么?

console.log(1+1);    // 2 数字相加
console.log("2"+"4");   // 24 字符串拼接
console.log(2+"4");    // 24 将数字2转换成字符串后字符串拼接
console.log(+"4");    // 4 字符串变为数字

以下代码的输出结果是

var a = 1;  
a+++a;  
typeof a+2; // number2

以下代码的输出结果是? 为什么

 var a = 1;
 var b = 3;
 console.log( a+++b );   

结果是 4,由于自增运算符 ++ 优先级高于 + 运算符,所以 a 先参加运算后自增,即 a+b = 4

遍历数组,把数组里的打印数组每一项的平方

var arr = [3,4,5]

for (var i = 0; i < arr.length; i++) {
  console.log((arr[i] * arr[i]))
}

遍历 JSON, 打印里面的值

var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
for (var prop in obj) {
  console.log (obj[prop])
}
hunger
male
28

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

var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) 
// number2  || 运算符,当第一个运算子的布尔值为true,则返回第一个运算子的值
var d = 5;
var data = d == 5 && console.log('bb')
console.log(data)
// undefined  &&运算符,当第一个运算子当布尔值为true,则返回第二个运算子的值
var data2 = d = 0 || console.log('haha')
console.log(data2)
// undefined   0 为 false 直接返回第二个运算子的值
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)
//  2    true 为1,两个 true 相加为 2
上一篇 下一篇

猜你喜欢

热点阅读