javaScript你不知道的闲杂知识
Posted 火腿肠烧烤大赛冠军
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript你不知道的闲杂知识相关的知识,希望对你有一定的参考价值。
页面端的js避免延迟
有些需要很久的js引入时,尽量放在下面(有可能因为加载这个文件导致渲染延迟)
前端访问的基本流程
注释与执行符
-
//
-
/*
*/ -
;尽量加上 或者下载一个插件
变量解析过程以及变量提升
js代码执行之前会预先将代码预解析一遍
var web = "hdcms";
包含两个过程
var web;
web = "hdcms";
在浏览器执行之前会预先加载第一步(无论程序将是否执行)
例如:
if(false){
var sam = 1;
}
一就会执行第一句 var sam;
ps:其实这是不好的
let const暂时性死区TDC
声明必须在使用之前
{
块儿及作用域
ok
}
找的时候有就用 没有会依次向上级寻找
全局污染
之前代码js文件堆在一起(之前遇到过);
变量极其混乱 很恶心
块作用域
- for中的i有块级作用域不会污染全局
- 不同的js文件使用let不会冲突
- 解决立即执行函数(立即执行,通过函数中的方法来导出变量)来防止全局污染的问题
例如:
{
let a=1;
}
外面就访问不到了
cosnt探究
const a = 123;
a = 3456;
这样是不可以的
但是
const b = {};
b.a = 123;
这样是可以的
- 所以说const是锁定了指针的方向,该指针内部的东西无所谓
- const仅限于一个块作用域内(因为并不是同一个作用域)
window全局对象污染的声明
- 全局作用域下var声明的对象会放到window下
- let定义的不会与window之间内部的变量冲突
- 重复声明var用下面的 let会提示
Object.freeze冻结变量
‘use strict’
let a = {b:123};
Object.freeze(a);
之后a如何改变都不会改变 建议使用严格模式
传值和传址
爸爸把车钥匙给了儿子是传址
爸爸直接给了儿子买新车是传值
null和undefined
一开始只有null没有undefined
null:本来打算保存引用类型
undefined:本来打算保存基本类型
函数没有返回值为undefined也包括没有参数使用了
typeof没有值为undefined(未声明)
严格模式
- 关键词不允许 报错
- 变量互相干扰不允许 报错
- 作用域:当前作用域向下(和变量相同)
- 禁止用大括号代替{a,b}={}解构语法
以上是关于javaScript你不知道的闲杂知识的主要内容,如果未能解决你的问题,请参考以下文章