## 作用域與變量提升
#### 例子1
~~~
// 下列代碼打印什么?為什么?
console.log(a) // undefined
var a = 1
console.log(b) // 報錯 未定義
~~~
瀏覽器讀取js會讀取2次,第一次先找var,把var聲明的變量a丟內存并且賦值undefined,第二次才是真正的執行,如果內存里面找不到某個變量,那么使用這個變量會報引用錯誤
<br>
#### 例子2
~~~
var a = 10
function test() {
a = 100
console.log(a) // 100
var a
console.log(a) // 100
}
test()
~~~
<br>
#### 例子3
~~~
var a = 100
function test() {
console.log(a) // undefined
var a = 10
console.log(a) // 10
}
test()
~~~
<br>
#### 例子4
~~~
var a = 100
function test() {
console.log(a) // 100
a = 10
console.log(a) // 10
}
test()
console.log(a) // 10
~~~
<br>
## Js的數據類型都有哪些?引用數據類型有什么特點?
* 基本數據類型:String(字符串)、Boolean(布爾)、Number(數字)、undefined等
* 引用數據類型:Object(對象) Array(數組)、Function(函數)、Date、null等
~~~
var obj1 = {
a:1
}
var obj2 = obj1
obj2.a = 2
console.log(obj1.a) //2
~~~
引用數據類型的特點,保存的是內存地址,他們真正的值是存放在那個地址里面,所以obj2改變了他的屬性,obj1去找屬性a其實就是去那個地址找,所有還是2
<br>
## 數組有什么用?對象有什么用?
數組作用:同類數據可以一起放在一個數組里面,比如商品列表,這樣操作起來方便
對象作用:世界上所有東西都可以抽象成對象,對象里面可以有很多屬性,比如人,人這個對象可以有年齡,姓名,身份證號碼,學歷等等
<br>
## 數組有哪些方法/函數?
* push 在數組后邊添加元素
* pop 在數組后邊刪除元素
* shift 在數組前面刪除元素
* unshift 在數組前面添加元素
* concat 兩個數組合并
* slice 截取數組
* splice 刪除或者插入元素
* join 數組通過分隔符合并成字符串
* reverse 數組倒轉
* indexOf 通過傳值找下標
<br>
## 字符串有哪些方法?
* spilt 字符串通過分隔符分割成數組
* indexOf 通過傳值找字符的下標
* substring 截取字符串
<br>
## 函數的作用?
把常用的功能封裝成函數,這樣下次再使用這個功能就不用重復寫代碼
<br>
## 函數的return有什么作用?有什么特點?
return后邊是什么,那么這個函數執行后就會變成什么
return的特點是return后邊的代碼是不會執行的,return是會馬上終止函數的執行
<br>
## 函數的形參和實參有什么區別?
函數聲明的時候,括號里面寫的參數變量就是形參
當函數調用的時候傳的變量就是實參,這個時候實參會賦值給形參
<br>
## 獲取html的dom元素有哪些方法?
* document.getElementById
* document.getElementsByClassName
* document.getElementsByTagName
* document.querySelector
* document.querySelectorAll
<br>
## 類操作有哪些方法?
* classList.add 增加一個類
* classList.remove 刪除一個類
* classList.contains 判斷有木有這個類
<br>
## 怎么設置dom屬性,怎么獲取dom屬性的值?
* setAttribute(屬性, 值)
* getAttribute(屬性)
<br>
## 怎么獲取div的內容?怎么修改div的內容?
.innerHTML
.innerHTML = 內容
<br>
## 怎么獲取文本框的內容?怎么修改文本框的內容?
.value
.value = 內容
<br>
## 怎么移除dom元素?
.remove
<br>
## 怎么綁定點擊事件?
.onclick = function(){ }
<br>
## 點擊事件里面的this一般指向誰?
誰點擊,this就指向誰
<br>
## 例子講解
<br>
<br>