IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript高级程序设计第三章上 -> 正文阅读

[JavaScript知识库]JavaScript高级程序设计第三章上

# 第一天(chapter3)

我们从第三章开始,因为第一二章语法较少,容易纵容自己懒得写代码的想法,后面补充一二章

## 语法

### 1. es区分大小写,同时标识符(变量、函数、属性、函数参数名称)尽量驼峰命名

### 2. 注释 ?// /**/

### 3. 严格模式

```

"use strict";

```

? 1严格模式是一种不同的JavaScript解析和执行模型,es3不规范的写法会在这种模式下处理,对于不安全的活动抛出错误。

? 2它是一个预处理指令。任何支持js的引擎都会切换到严格模式。选择这种语法形式是为了不破坏es3语法

? 3 整个脚本启用严格模式,在脚本开头加上

? ```

? "use strict";

? ```

? 4 制定函数在严格模式下执行,在函数体开头书写即可

? ```

? ? function doSomething(){

? ? ? ? "use strict";

? ? }

? ```

## 4.推荐句尾加分号

## 5.变量

1.es变量是松散类型的,var、const、let可以声明变量,var在各个版本都可以使用,const和let只在es6之后

### var(我们不会讲怎么用,学js或者说看这本书,起码要有c等其他一门语言基础)

1.作用域:函数作用域

```

? ? }

function test(){

? ? var t = "hi,js";//局部变量,只在函数内部有效

}

function test(){

? ? t = "hi";//全局变量

? ? //我们不推荐这种做法

? ? /*

? ? ? ? 严格模式下,这样给未声明的变量赋值,会导致

? ? ? ? 抛出ReferenceError

? ? */

}

```

2.多个变量赋值

```

? ? var a = "hi",

? ? ? ? b = 11,

? ? ? ? c = false;//最好空行

```

3.var提升(hoist)

```

function foo(){

? ? console.log(age);

? ? var age = 26;

}//不会报错,等价于

function foo(){

? ? var age;

? ? age = 26;

? ? console.log(age);

}

```

hoist,就是把所有变量声明拉倒函数作用域顶部,反复多次用var声明同一个变量也ok


?

### let

let是块作用域,var是函数作用域

```

if(true){

? ? let a = 1;

? ? console.log (a);//1

}

console.log(a);//referenceError

```

```

let a;

let a;//wrong , 不可以重复声明

```

1.暂时性死区

```

console.log(age);

let age;//let不可以提升,所以上面的age没有定义;

//在let声明之前的执行瞬间被称为“暂时性死区”,在此阶段引用任何后面才声明的变量都会抛出referenceError

```

2.全局变量

与var关键字不同,使用let在全局作用域中声明的变量不会成为window对象的属性(var会)

```

var name='i like iu';

console.log(window.name);

let name='i like iu';

console.log(window.name);//undifined

//let声明仍然在全局作用域发生,相应变量会在页面的生存周期内延续。因此,为避免syntaxerror,必须确保页面不重复声明同一个变量

```

3条件声明

对于let,前面声明过的变量不得再次声明,同时没有变量提升

见P27页详细内容

4.for中的let

let使得迭代变量局限于for内部:for(let i=0;;)

```

for(var i = 0;i<5;i++){

? ? setTimeout(()=>console.log(i),0));

? ? //输出5,5,5,5,5

}

for(let i = 0;i<5;++i){

? ? setTimeout(()=>console.log(i),0));

? ? //0 1 2 3 4

}

var保存退出循环的值,而let声明迭代变量,为每个迭代循环声明一个新的迭代变量,每次引用不同的变量实例(涉及一些后面的知识,之后遇到理解会深刻,这样解释有点浅)

```

### const

const变量需在声明时初始化,并且不可以修改

当然,其限制仅适用于它指向变量的引用,如果其指向对象,修改对象内部属性并不违反const限制

### 代码风格及最佳实践

1.不用var

2.先使用const,再使用let

只在提前知道未来有改变时使用let,这样可以让浏览器运行时强制保持变量不变




?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:50:47  更:2021-10-24 14:51:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 11:28:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码