Skip to content

第一章 简述

总体逻辑

1 存储数据

2 调出数据

编程语言是用合适的结构来储存数据和合适的算法来管理数据。

浏览器:

1 解析

2 执行

提前声明完,达到先声明后赋值。


规范

1 js一般放在下边,以免造成后边的代码加载不出来

2 分号要加。很多语言,工具不加分号是会报错的。

3 函数体内需要声明,便于调用协作。


特性

1 多端同时运行,切换端到端只需要进行相对小的调整。

2 前后台js都可以,前台使用js,后台使用node.js。

3 js每年更新发布。


插件

1 liveserver--提供实时更新

2 chrome--浏览器 con+shift+i 调控制台


加载方式

嵌入 外联 内联


注释

1注释的效果是让一段代码失效,并且是暂时失效。

2所以灵活使用注释非常好用,方便调试。

3对晦涩的代码进行声明,在后期维护非常有用。


★变量声明

声明本质上也是一种接收

1 var 变量提升

2 let TDZ √临时锁区,必须在声明后使用 建议使用

3 const TDZ √临时锁区,必须在声明后使用 建议使用

​ const定义常量,常量名为大写。

​ const定以后在同作用域内不可修改变量内存地址的引用。

使用let 和 const 有利于代码思维养成,即先声明后赋值。

包括两部分: 声明 和 赋值

规范:字母数字下划线

共同点: 1 函数体内均可访问外部变量/全局变量

​ 2 内部变量和全局变量名称一致但未声明的,会重新改变全局变量。(造成全局污染)。

​ 3 函数体内部声明后,即为函数体私有变量,不影响全局变量。

未声明变量直接使用会直接污染全局,尽管可以使用。

每次声明变量,js会在内存中开辟一段空间来储存数据。

js可一次声明并定义多个变量。

通过变量名,js可以从内存中调用其数据。

js中,变量类型根据变量值的不同而不同(弱类型)。

解析器在执行代码前会对代码进行分析,将一些代码变量提升。


调试代码

console.log

typeof


块作用域//关于var

1 花括号:{} 一个花括号内部即一个块

​ 如果{}内部使用了var定义,那么在{}外部依然可以访问。

​ 如果{}内部使用let/const定义,在{}外部访问不到。

2 闭包内部开放接口。

​ 通过使用接口来减少冲突。


window对象

普通声明变量会直接影响window,其结果是有可能会人为污染已定义的方法

var声明会将其放入window属性,和window连接

let声明的值不会影响到window,是分离开来的。

var的重复声明不会提示和报错、

let/const 在同一作用域内重复声明会发出提示


引用

在对象中,创建一个引用会在内存地址中开辟一个较大的内存空间。

修改对象中的值是在已有内存空间内进行修改,不会改变内存地址。


变量冻结

(可使用)"use strict"; 开启严格模式,当使用object.freeze锁定变量而代码中尝试修改的时候会在console里报错。

Object.freeze() 锁定变量


引用类型

传址: var a = b;

传值: var a = 1;


null与undefined

null是null

undefined是undefined


严格模式

作用域:当前作用域和下级作用域

一句话,写代码的时候使用严格模式。