JS基础,查漏补缺

1.浏览器

浏览器内核分为渲染引擎和JS引擎

CSS和DOM是通过渲染引擎在网页上显示的。

JS代码就是通过JS引擎进行解释执行的,所以js也是解释型语言。

2.数据的存储方式

在js内定义变量有两种方式var和let,而const是用来定义常量的,可为什么大多数定义都是const呢?

在内存中存储数据存储方式分为栈和堆,简单数据类型就是存储在栈中,复杂数据类型则是在堆。

用let定义的数据就是在栈中开辟一个空间,将数据存在这个空间中,如let t=123。

这里的t是简单数据类型number,像其他简单数据类型都是这样存储的。

复杂数据类型如object,array等都是在栈中存储的是地址,真正存放数据的是堆。定义数组goods=[1,2,3,4],它在内存是这样存放的:

 

定义的数组,对象等类型的数据都是通过在栈中存放指向堆中数据的地址 ,所以当通过push(),pop()等改变数组的数据其实是改变堆中的数据,而栈中存放的地址没有改变。

 所以大多数情况下定义对象,数组都是用const定义。还有一种情况:

const arr=[1,2,3,4]

arr=[5,6,7]

此时就会报错,因为这里已经给arr重新赋值了,改变了栈中的存放的地址,并在堆中生成新的数据。

总之,const>let>var,遇到报错的就改

3.字符串

模板字符串(ES6)
    let t='吃了肉'
    console.log(`今天睡了懒觉,${t}`)

ES6新标准,用反引号输出是,想要拼接变量时,用${}包含住变量即可。 

4.函数 

 立即执行函数两种方式:

第一种:(function(){}())

第二种:(function(){})()

当有多个立即执行函数时,需要在上一个的末尾加分号';'

5.对象

查找对象

第一种:对象名.属性名

第二种:对象名['属性名'](当属性名含有’-‘或者字符串时使用)

遍历对象 
    let t={title:'数学',total:'30',time:'周三'}
    for (const key in t) {
       console.log(t[key]);
    }

for in遍历时key时字符型,所以不能用来遍历数组 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值