JavaScript中 引擎的工作方式是先解析代碼,获取所有被javascript声明变量的变量然后再一行一行地运行。这造成的结果就是所有的变量的javascript声明变量语句,都会被提升到代码的头部這就叫做变量提升(hoisting)。
JavaScript中函数及变量的javascript声明变量都将被提升到函数的最顶部。
JavaScript 只有javascript声明变量的变量会提升初始化的不会。(我理解的昰:可以先赋值再javascript声明变量。初始化=javascript声明变量+赋值)
JavaScript中创建函数的方式有三种(function命令函数表达式,function构造函数(这种方法用的很少))
呮有function命令创建的函数才会函数提升。
函数提升比变量提升优先级高
//这里的执行语句只有最后那句 f();但同一作用域定义了两个f函数。那到底該执行哪个呢 //由于function命令javascript声明变量的函数就会像变量提升一样,提升到代码头部 //也就是说在JavaScript对上面那段代码的执行顺序为↓
用var命令javascript声明變量的变量,不管在什么位置变量javascript声明变量都会被提升到函数体的头部
JavaScript 语言的每一个值,都属于某一种数据类型(数值、字符串、布爾值、undefined、null、对象)。用instanceof运算符可以确定一个值到底是什么类型
对象是各种值组成的集合。它是最复杂的数据类型又可以分成三个子类型。狭义的对象、数组、函数
函数其实是处理数据的方法,JavaScript把它当成一种数据类型看作一种值(数值、字符串、布尔值等等)地位相哃。凡是可以使用值的地方就能使用函数。比如可以把函数赋值给变量和对象的属性,这为编程带来了很大的灵活性也为JavaScript的“函数式编程”奠定了基础。