前端程序员需要了解的JavaScript

本文详细介绍了JavaScript中的var、let、const的定义与区别,包括变量提升、作用域、变量传值与传址。此外,还探讨了逻辑运算,如赋值与逻辑判断、与或非运算符、流程控制结构如if、switch、循环,并通过实例解析了各种运算符的使用。最后,总结了for、for in、for of的遍历差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

var,let,const

一:定义变量分为两步:

二:变量提升

三:使用object.freeze冻结变量

四:变量传值与传址

五:全局变量与局部变量

六:作用域的问题

七:undefined与null 

逻辑运算

一:赋值与逻辑判断

二:与运算符,或运算符和非运算符

三:一元运算符和复合运算符

四:流程控制

三元表达式案例:

与或非运算案例: 

ifelse案例

 switch

while

do while:后条件判断语句,无论条件是否为真都会先进行循环体。

for:

for in: 拿到遍历的索引或对象的键值

for of:拿到遍历的值

结尾


前话:原生js基本上是找到dom节点,然后操作dom节点或者给个监听函数,我们最主要的是学会编程的逻辑


var,let,const

一:定义变量分为两步:

var a = 1 等于 var a ; a =1 ;

  1. 声明空间
  2. 赋值

二:变量提升

js中var定义变量会存在变量提升,它会将var 的声明空间放在函数块代码域的第一行

例子:

 console.log(a);
  var a = 1

//控制台会打印undefined

三:使用object.freeze冻结变量

 let obj = {
    a: 1
  }
  Object.freeze(obj)
  obj.a = 2
  console.log(obj);

{a: 1}

四:变量传值与传址

let a = 1
  let b = a
  b = 3
  console.log(a, b);
结果:1  3

说明开辟了两个空间,赋值只是把值传过去了,用的两个地址
  let a = {
    demo: 1
  }
  let b = a
  b.demo = 2
  console.log(b, a);
结果
demo: 2

demo: 2

说明是把地址传过去了,改变了b的值,同时a的值也改了,开辟的空间地址用的同一个

简单的标量赋值(字符串,数字。文字)开辟了新的地址空间,只是赋值

对于复杂的引用类型例如对象数组,则共用一个地址空间,即为传址 

五:全局变量与局部变量

函数外声明的变量为全局变量,函数内声明的变量为局部变量 

JavaScript 变量生命周期在它声明时初始化。

局部变量在函数执行完毕后销毁。

全局变量在页面关闭后销毁。

在 HTML 中, 全局变量是 window 对象: 所有数据变量都属于 window 对象。

六:作用域的问题

函数作用域:在函数体内用var就会变量提升,使得在外定义的全局变量失效。

                      执行函数的时候,先执行函数块作用域,在作用域里面检索变量,没有再找全局变量

                      下面的例子中,t()函数中如果把var改为let,终端会报错,因为当前函数域下存在                        变量scope,但未提升。

  let scope = "global";

  function t() {
    console.log(scope);
    var scope = "local"
    console.log(scope);
  }
  t();
  console.log(scope);

结果:undefined
      local
      global

为啥第一个结果是undefined,因为函数作用域里,定义的var scope 存在变量提升

变量作用域:在函数体内定义变量不使用声明语句,则视为全局变量

 function t() {

    scope = "local"

  }

  function c() {
    console.log(scope);
  }
  t();
  c()
  console.log(scope);

结果:local local

害,千言万语劝一句,别用var定义变量就没一点事情了,在这里多的是考你作用域的面试题

七:undefined与null 

未赋值与未定义的变量值都为 undefined ,建议声明变量设置初始值,一般初始标准变量时设为undefined,例如数字字符串

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值