//声明式
function sayHello(){
console.log('Hello');
}
//eat();
//赋值式
var eat = functon(){
console.log('喜欢吃');
}
预解析 从上往下解析
总结:
声明式的函数预解析时,整个函数将被提升到Script标签内的最上面
赋值时的函数预解析时,将赋值的变量提升到Script标签内的最上面,后面的赋值函数忽略
变量预解析:将声明的变量提升至script标签内的最上面
console.log(a) 融于变量的预解析,故此处打印的是undefinedl
var a=10
console.log(a) 由于上面已经进行赋值,故此处打印的是10。
JavaScvcript作用域
分两种:全局作用域和局部作用域
全局作用域:整个页面只有当页面关闭时,全局作用域才会失效 局部作用域:全局作用域又划分出小范围的作用域,函数内部可以创建局部作用域,目前为止,也只有函数内部可以创建局部变量,全局变量可以在函数内部进行访问,但是函数内部定义的变量不能在函数外进行访问。
var a = '张三';
function rest_1(){
var a = '李四' //变量采取的就近原则l
console.log(a);
function test_2(){
a = '王五';
}
console.log(a);
}
test_1()
console.log(a);
function text_3(){
num = 100;
}
test_3();
console.log(num);//自动转换全局变量
DOM对象(文档对象模型)
<div class="item">这是一个DIV</div>
<input type="text" name="" id="uname">
<a href="#" class="item">超链接</a>
<input type="radio" name="sex" id="">男
<input type="radio" name="sex" id="">女
<div>
这是第二个div
</div>
// 获取DOM中的节点,使用的是documen对象
// 获取整个html文档
console.log(document.documentElement);
// 获取头部head
console.log(document.head);