JS后盾人--再一次的走进JS?

程序跑起来与避免延迟

如果你讲JS,你就不可能只讲JS

后盾人说开发就要用VScode(确实,Windows和Linux都可以跑)

然后就是第一天开发的时候装的那些插件

前端访问流程基本分析

托管到服务器上的东西,谁访问下载到谁的电脑里

就是如此简单。。

体验解析过程与变量提升

解析器在执行之前会先做变量的提升

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function hd() {
            if (false) {
                var web = "houdunren.com"
            }
            console.log(web)
        }
    </script>
</body>

</html>

比如这个代码,虽然web看上去毫无作用,但是你注释掉会报错,这就是因为有变量提升的存在

let&const暂时性死区TDC

如果使用let或者const来声明变量那会产生一个暂时性死区TDC(言下之意就是不能在声明变量之前使用变量),帮助我们让代码更加的合理(对声明的保护)

var-let-const的共同点

主要涉及的就是作用域(变量的作用域,先局部后全局)

可怕的全局污染

有的人不好好声明,可以加上这个让它强制声明:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        "use strict"
        mu = 777
    </script>
</body>
</html>

主要就是不要定义太多的全局变量,容易造成一些污染

块作用域这个先进的特性

这是块作用域的一些应用:

javascript 复制代码
(function(){    //立即执行函数,控制作用域,避免发生污染
    var $ = (window.$ = {})     //开放接口出去
    $.web = "hdcms"
    var url = "hdcms.com"
    $.getUrl = function(){
        return url
    }
}.bind(window)())

使用let或者const就可以有块作用域,优点就是不会影响先前定义的一些变量的值

const常量声明一探究竟

如果仅仅是这样函数是不会报错的,因为受限于作用域

const针对的标量不可以改变,但是引用类型是可以改变的

封装到块里面就又不会报错了

window全局对象污染与重复声明

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let screenLeft = 88 
        console.log(window.screenLeft)      //window对象里面的值没有被改变,如果使用var就会被改变
    </script>
</body>
</html>

这是window的全局对象,window对象保存着窗口的一些信息

针对var的重复声明,系统是不会报错的

Object.freeze冻结变量

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const HOST = {
            url:"baidu.com",
            prot:443
        }
        HOST.prot = 80
        console.log(HOST)
    </script>
</body>
</html>

这种情况变量的值是可以被改变的

我们可以使用Object的静态方法将其冻结,这样它的值就不会改变了

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        const HOST = {
            url:"baidu.com",
            prot:443
        }
        Object.freeze(HOST)
        HOST.prot = 80
        console.log(HOST)
    </script>
</body>
</html>

标量与引用类型的传值与传址特性

老生常谈的传值调用和传址调用

null与undefined详解

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //null   undefined
        let config = {}
        let web = ""
        function show(name){
            console.log(name)
        }
        console.log(show())
    </script>
</body>
</html>

use strict严格模式高质量代码守卫

这不就是之前说的那个吗,不说了

使用严格模式就对啦!

相关推荐
傻啦嘿哟1 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670791 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄2 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
Seoyoneh3 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
Tangyuewei3 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界4 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨4 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J5 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
杜大哥5 小时前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk5555 小时前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python