每日一道javascript面试题(八)你真的知道了解const吗

简介: 每日一道javascript面试题(八)你真的知道了解const吗

前言

  • 我是小嘟,努力每天分享一道javascript相关的题目。
  • 希望对你有所帮助。
  • 觉得有用的话,请点赞支持,你的鼓励是我坚持下去的动力。


题目

  • 今天为大家分享的是关于const变量的一些知识点。
console.log(test);//key1处
const test = "10";
console.log("我是在声明之后改变值之前打印的",test);//key2处
test = 20;
console.log("我是改变test值之后的打印结果"test);//key3处

运行结果如下(注:key1报错那么程序就会终止)

key1处的结果

key2、key3处的结果

代码分析


本题考的就是关于const声明变量的特点,那么它有什么特点呢?

1.它存在暂时性死区,换句话说,它不会变量提升,任何在它声明之前试图访问它都会报错,typeof 也一样

2.const声明的变量,必须在声明的时候就必须初始化,例如 const say = ’hello‘。

3.const声明的变量是常量,也意味着它不可以被修改,任何企图修改该类型的变量都会报错,读者可以把key、key3处的英文翻一下就明白啦(敲黑板:这里就有一个考点喽!),面试官可能会问,你说const声明的变量不能被修改,那请你看一个题目

const staticVariable = {
        say:"hello! ",
        say1:"goodbye!"
      }
staticVariable.say2 = 'nice to meet you!';
console.log(staticVariable);
staticVariable.say1 = "no goodbye!";
console.log(staticVariable);


  • 那这个怎么可以修改呢?其实值确实没变,变得只是堆内存中的内容,我们知道,在js中有两大基本类型:基本类型和引用类型,基本类型又称为值类型,它存储在栈内存中,而引用类型则不同,它会将自己的地址信息存进栈内存中,而它的真实空间是在堆内存中。说到这小嘟想到了c语言的指针,指针不就是存储的是一块内存空间的地址,那么它就指向了它所指向的那块内存。

今日分享到此结束,详情请看附件链接。

如觉得还不错的话,请点赞评论加关注,小嘟会继续努力,创造更多好的内容。

相关文章
|
1天前
|
缓存 JavaScript 前端开发
js高频面试题,整理好咯
中级前端面试题,不低于12k,整理的是js较高频知识点,可能不够完善,大家有兴趣可以留言补充,我会逐步完善,若发现哪里有错,还请多多斧正。
|
26天前
|
JavaScript 前端开发 开发者
JavaScript中的const关键字解析
JavaScript中的const关键字解析
21 2
|
1月前
|
JavaScript 前端开发
JavaScript语法关键点:变量用`var`、`let`、`const`声明
【6月更文挑战第22天】JavaScript语法关键点:变量用`var`、`let`、`const`声明;七种数据类型包括`Number`、`String`、`Boolean`、`Null`、`Undefined`、`Symbol`和`Object`;运算符如算术、比较、逻辑和赋值;流程控制有`if...else`、`switch`和各种循环。了解这些是JS编程的基础。
35 3
|
1月前
|
JavaScript 前端开发
JavaScript进阶-ES6新特性概览:let, const, arrow functions
【6月更文挑战第19天】ES6的`let`和`const`带来了变量声明的变革,解决了`var`的提升和作用域问题。`let`有块级作用域,避免了循环中的变量共享;`const`声明常量,值不可变但内容可变(如数组和对象)。箭头函数简化了函数定义,其`this`绑定遵循上下文,不具自己的`arguments`。这些特性提升了代码质量和可读性。
|
1月前
|
SQL 自然语言处理 前端开发
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
【JavaScript】ECMAS6(ES6)新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析
22 2
|
19天前
|
JavaScript
JS【详解】setTimeout 延时(含清除 setTimeout,计时开始时间,0 秒延时解析,多 setTimeout 执行顺序,setTimeout 应用场景,网红面试题)
JS【详解】setTimeout 延时(含清除 setTimeout,计时开始时间,0 秒延时解析,多 setTimeout 执行顺序,setTimeout 应用场景,网红面试题)
36 0
|
21天前
|
JavaScript 前端开发
|
22天前
|
存储 JavaScript 前端开发
面试官:JS中变量定义时内存有什么变化?
面试官:JS中变量定义时内存有什么变化?
15 0
|
22天前
|
JavaScript 前端开发
JS进阶篇(前端面试题整合)(三)
JS进阶篇(前端面试题整合)(三)
15 0
|
2月前
|
JavaScript
分享经典面试题:JS数组去重的多种方法
分享经典面试题:JS数组去重的多种方法