因为唯一的本子基础点记太多了,以至于整理后的东西没地方写,所以打算用博客进行记录啦!
关于JS语法的基础
1. JS变量名需区分大小写,建议使用小驼峰命名法
- 变量名如果重复赋值的话会替换为后面的值
- 多使用
let
来声明,而不是var
- 若一次性声明多个变量并赋值,如
var h1 = 1, h2 = 2, h3 = 3
,需用逗号隔开- 关于赋值: 变量名 = 值
- 变量使用
let
;常量使用const
;函数使用function
- 数据类型:数字number、字符串string、布尔型bool、undefined、null、对象
2. 关于运算优先级🔝
运算优先级从上往下
- ()优先级最高
- 一元运算符: 累加++、递减–、取非 !
- 算术运算符:与数学中的运算先后一致,即先乘除(*、/、%),后加减(+、-)
- 关系运算符:>、<、>=、<=
- 相等运算符:相等==、完全相等===、不等于!=、全不等!==
=== 等同符,当两边值的类型相同时,直接比较值,若类型不相同,直接返回false
== 等值符,当等号两边的类型相同时,直接比较值是否相等,若不相同,则先转化为类型相同的值,再进行比较
!= 返回同类型值比较结果,类型不同时,会转换类型
!== 不同类型不比较,相同类型才比较
类型转换规则1:如果等号两边是boolbean
、string
、number
三者中任意两者进行比较时,优先转换为数字进行比较;
类型转换规则2:如果等号两边出现了null
或undefined
,numll
和undefined
除了和自己相等,就彼此相等
!!!注意:NaN == NaN //返回false,NaN和所有都不相等- 逻辑运算符 先&&,后||
- 赋值运算符 =
3. 关于函数
基本形式为
function fun(形参,形参){ 代码; return 返回值; } var re = fun(实参1,实参2) //fun为函数名
如果函数中没有return,那么函数调用后接到的返回值是undefined
如果函数中有return,但return后面没有值,那么函数调用后接到的返回值也是undefined
函数中return后,不管有什么代码,均不执行,即return后函数的调用结束
- 匿名函数,即函数本身没有名字👇
var fun = function(){ console.log(1); } fun();
- 立即执行函数,即自调用匿名函数👇
(function(){ alert(123); })();
- 作用域:防止全局变量污染,封装一个局部作用
- 函数回调:
function f1(s){ // var k = 123 + s; // console.log(k); s(); } var f2 = function(){ console.log(222); } //f2函数会被当作值,传入f1函数内,即函数回调 f1(f2);
- 闭包:
function f1(){ var a = 10; var f2 = function(){ alert(2); } return f2; } //函数闭包 var k = f1(); k();
- 变量提升
变量提升,即在代码执行之间变量已经在编译阶段被声明了
P.S. JS代码运行分为两个阶段:
- 解析(编译)阶段:语法检查,变量及函数进行声明
- 运行阶段:变量赋值,代码流程的执行
- 如果函数与变量同名,那么函数声明会替换变量声明
console.log(a); function(){ console.log('aaaa'); } var a = 1; console.log(a);
4. 作用域链🔗
当函数中使用给某个变量,优先在自己的作用域中查找,如果找不到,则会向上一层作用域查找;如果还是找不到,则继续向上一层查找,直到全局作用域;如果还是找不到的话,直接报错
今天就到这里啦,收工收工!💪
I'm so cute. Please give me money.
- 本文链接:http://nino_yuzuru.com/2021/05/28/fifth/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。