回味JS(一)数据类型

2019-05-26  本文已影响0人  ArmorVon

接下来的一系列学习笔记都来自于阮一峰老师的JavaScript 教程,重新回顾一遍JavaScript基础。

本篇是对于这个教程中数据类型的相关总结。

在学习基础知识之前,先来看一下关于JavaScript的相关介绍和特点:

下面以提问的方式来对JavaScript的数据类型来进行学习和总结:

JavaScript中有几种数据类型?

JavaScript 的数据类型,共有六种,(ES6 又新增了第七种 Symbol 类型的值).

主要包括:数值(number),字符串(string),布尔值(boolean),undefined,null,以及对象(object)。

其中对象又包括狭义的对象object,函数和数组。

判断数据类型的方法?

JavaScript 有三种方法,可以确定一个值到底是什么类型。

不过需要注意,null使用typeof运算符会返回object。

为何typeof 用来检查一个没有声明的变量不报错?

null 和 undefined 有什么区别?

布尔值的转化规则?

如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。

为何说JavaScript 语言的底层根本没有整数?

+0 和 -0的区别?

数值NaN有什么特殊性?

  1. 属于Number类型,typeof NaN // 'number'
  2. NaN不等于任何值,包括它本身
  3. indexOf方法不能判定NaN
  4. NaN与任何数(包括它自己)的运算,得到的都是NaN
  5. NaN在布尔运算时被当作false

为何使用isNaN之前,最好判断一下数据类型?

如何把长字符串分成多行?

为什么对象的所有键名加不加引号都可以?

如果行首是一个大括号,它到底是表达式还是语句?

delete命令可以删除对象的所有属性吗?

for...in 循环 和普通for循环的区别

arguments 对象跟数组的关系?

JavaScript 的作用域?

JavaScript 有两种作用域:全局作用域和函数作用域

函数本身的作用域在哪里?

函数本身也是一个值,也有自己的作用域。它的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关。

var a = 'out';
var x = function () {
  console.log(a);
};

function f() {
  var a = 'inter';
  x();
}

f() // 'out'

函数参数的传递方式?

如果在函数体内修改参数值,会不会影响到函数外部?

什么是闭包?

当我们需要获取到某个函数f1的局部变量时,我们可以在函数f1内定义一个函数f2,则在函数B中可以获到f1中的局部变量,把函数f2作为返回值return回来,我们就可以在函数f1的外部获取到它的局部变量,此时,这个函数f2就是闭包。

闭包,即能够读取其他函数内部变量的函数。

闭包的用处:

为何不能滥用闭包?

立即调用的函数表达式(IIFE)的作用是什么?

数组的某个位置是空位与某个位置是undefined的区别?

上一篇下一篇

猜你喜欢

热点阅读