数据类型
JavaScript 是 弱类型 语言,但并不是没有类型,JavaScript可以识别下面 7 种不同类型的值:
基本数据类型
1.Boolean
2.Number
3.String
4.null
5.undefined
6.Symbol
Object
1.Array
2.RegExp
3.Date
4.Math
5....
可以使用 typeof 判断数据类型,操作符返回一个字符串,但并非返回的所有结果都符合预期
typeof false // "boolean"typeof .2 // "number"typeof NaN // "number"typeof '' // "string"typeof undefined // "undefined"typeof Symbol() // "symbol"typeof new Date() // "object"typeof [] // "object"typeof alert // "function"typeof null // "object"typeof not_defined_var // "undefined"
变量
在应用程序中,使用变量来来为值命名。变量的名称称为 identifiers
声明
1.使用关键字 var :函数作用域
2.使用关键字 let :块作用域 (block scope local variable)
3.直接使用:全局作用域
var global_var = 1;function fn () {var fn_var = 2;if(fn_var > 10){let block_var = 3;global_var2 = 4;}}
只声明不赋值,变量的默认值是 undefined
const 关键字可以声明不可变变量,同样为块作用域。对不可变的理解在对象上的理解需要注意
const num = 1;const obj = {prop: 'value'};num = 2; // Uncaught TypeError: Assignment to constant variable.obj['prop'] = 'value2';obj = []; // Uncaught TypeError: Assignment to constant variable.
变量提升
JavaScript中可以引用稍后声明的变量,而不会引发异,这一概念称为变量声明提升(hoisting)
console.log(a); // undefinedvar a = 2;
等同于
var a;console.log(a);a = 2;
函数
一个函数就是一个可以被外部代码调用(或者函数本身递归调用)的 子程序
定义函数
1.函数声明
2.函数表达式
3.Function 构造函数
4.箭头函数
function fn(){}var fn = function(){}var fn = new Function(arg1, arg2, ... argN, funcBody)var fn = (param) => {}
arguments
1.arguments: 一个包含了传递给当前执行函数参数的类似于数组的对象
2.arguments.length: 传给函数的参数的数目
3.arguments.caller: 调用当前执行函数的函数
4.arguments.callee: 当前正在执行的函数
function foo() {return arguments;}foo(1, 2, 3); // Arguments[3] // { "0": 1, "1": 2, "2": 3 }
rest
function foo(...args) {return args;}foo(1, 2, 3); // Array[3]// [1, 2, 3]function fn(a, b, ...args){return args;}fn(1, 2, 3, 4, 5); // Array[3] // [3, 4, 5]
新闻热点
疑难解答
图片精选