[TOC]
### 1.1 如何聲明變量
~~~
var a;
//如果聲明一個變量沒有賦值,那么結果就是undefined
console.log(a); //undefined;
~~~
#### 1.1.1 let
~~~
/* es6之前js沒有塊級作用域 */
for(let i =0;i<3;i++){
console.log(i);
}
{
let m =10;
}
console.log(m);
~~~
~~~
let a =10 ;
let a = 20;
console.log(a) //報錯
~~~
#### 1.1.2 var
* var 定義的全局變量
~~~
var a = 10;
var a =20;
console.log(a) //20
~~~
#### 1.1.3 var和let易錯實例`還需谷歌`
~~~
var a = 1;
function test(){
console.log(a);
var a = 2;
}
test();
結果 undefined 原因 a未被賦值明提前
console.log(a);
var a = 2;
相當于
var a ;
console.log(a);
a = 2;
~~~
~~~
var a = 1;
function test(){
console.log(a);
let a = 2;
}
test();
結果 報錯
原因 a 未被定義
~~~
### 1.2標識符(變量名,函數名,屬性名)的命名規范
* 1 關鍵字和保留字不能作為命名
| [abstract](https://baike.baidu.com/item/abstract) | [assert](https://baike.baidu.com/item/assert) | [boolean](https://baike.baidu.com/item/boolean) | break | [byte](https://baike.baidu.com/item/byte) |
| ----------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------- | --------------------------------------------- |
| case | [catch](https://baike.baidu.com/item/catch) | [char](https://baike.baidu.com/item/char) | [class](https://baike.baidu.com/item/class) | const |
| continue | [default](https://baike.baidu.com/item/default) | [do](https://baike.baidu.com/item/do) | [double](https://baike.baidu.com/item/double) | [else](https://baike.baidu.com/item/else) |
| [enum](https://baike.baidu.com/item/enum) | [extends](https://baike.baidu.com/item/extends) | [final](https://baike.baidu.com/item/final) | [finally](https://baike.baidu.com/item/finally) | float |
| true | false | null | | |
| [for](https://baike.baidu.com/item/for) | goto | [if](https://baike.baidu.com/item/if) | [implements](https://baike.baidu.com/item/implements) | [import](https://baike.baidu.com/item/import) |
| [instanceof](https://baike.baidu.com/item/instanceof) | [int](https://baike.baidu.com/item/int) | [interface](https://baike.baidu.com/item/interface) | long | native |
| new | [package](https://baike.baidu.com/item/package) | [private](https://baike.baidu.com/item/private) | [protected](https://baike.baidu.com/item/protected) | [public](https://baike.baidu.com/item/public) |
| [return](https://baike.baidu.com/item/return) | [strictfp](https://baike.baidu.com/item/strictfp) | [short](https://baike.baidu.com/item/short) | [static](https://baike.baidu.com/item/static) | [super](https://baike.baidu.com/item/super) |
| [switch](https://baike.baidu.com/item/switch) | [synchronized](https://baike.baidu.com/item/synchronized) | [this](https://baike.baidu.com/item/this) | [throw](https://baike.baidu.com/item/throw) | [throws](https://baike.baidu.com/item/throws) |
| [transient](https://baike.baidu.com/item/transient) | try | [void](https://baike.baidu.com/item/void) | [volatile](https://baike.baidu.com/item/volatile) | while |
* 2 由字母,數字,下劃線或美元符號($)組成
* 3不能以數字開頭
### 1.3聲明提前
> 概念:js會將所有聲明的變量,放在作用域的頂部集中創建,賦值留在原地
~~~
console.log(a); //undefined
var a = 20;
~~~
### 1.4嚴格模式`use strict`
~~~
//js聲明一個變量可以不使用var,js執行時自動補全
b=10;
console.log(b);
~~~
~~~
//如果嚴格模式,聲明變量必須使用var
"use strict";
a = 20;
console.log(a); //報錯
~~~
### 1.5 常量
~~~
//=是賦值的意思
/* 常量:創建之后不能修改 */
const a = 3.14;//創建常量
//a = 40;增加修改報錯
console.log(a); //3.14
~~~
### 1.6 變量范圍
`全局變量`:在函數外面聲明的就叫全局變量
作用范圍:整個window
`局部變量`:在函數內部聲明的變量就叫局部變量
作用fanwei:在函數的大括號中
~~~
var g = 20;
console.log(g);
function b(){
var c = 30 ; //在函數內部,聲明的變量如果沒有使用var關鍵字,js將其識別為全局變量
console.log(c);
}
b();
console.log(c);c不能被輸出
~~~
### 1.7轉義字符`\`
~~~
var a ="hello world\"good\"";
var str = "hello\nworld"
var str = "hello\\nworld"
console.log(a);
console.log(str);
~~~
- 效果實例
- 1.點擊增加高度
- 2.tab頁面切換
- 3. 列表切換
- 4. 隔行變色
- 5. swiper 輪播
- 6.vue
- 7.定時器
- 8. 向表格中添加數據
- 9 瀑布流
- 1.JavaScript基礎
- 1. 變量
- 2. 調試
- 3.數據類型
- 4.轉換
- 5.控制語句
- 6.運算
- 7. this
- 8 JSON對象和javascript對象的相互轉換
- 2.JavaScript的控制語句
- 1. 基本控制語句
- 2.節點
- 2.1DOM補充
- 3. 函數
- js的模塊化如何解決
- 不知道有什么用的
- 4.數組
- 5. String
- 補充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封裝
- Ajax效果
- ajax補充
- 7. 正則
- 1.創建正則表達式
- 2. 正則的api
- 3.正則語法
- 4.例子
- 量詞
- 8.面向對象
- 1.原型
- ES6
- 模塊化
- 1.回調地獄
- 什么是回調地獄
- 簡單封裝
- promise解決回調地獄
- generator解決回調地獄
- async解決回調地獄
- 2.封裝
- Ajax,promise
- JavaScript難點
- 1. 閉包/作用域
- 2.原型鏈
- 3. 兼容性
- 適配
- JavaScript小效果
- 字符串截取