分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

18.2.26深信服Web实习生补坑(已拿到offer)----持续更新中,还没写完

发布时间:2023-09-06 01:44责任编辑:董明明关键词:Web

26号晚上8点左右收到电话,面试大概一小时左右,发挥的一般,问到的大部分都答出来了,有些没有讲好。然后面试官说等通知,问了评价,面试官说我现在大三懂这么多已经很不错了,表达能力需要加强,有点紧张口吃。30分钟后收到实习生offer邮件。这里只记录下几个答的不好的点。

1.var和不var的区别?

先问了作用域相关,然后问如果不用var声明一个变量是属于什么变量,这个是全局变量,肯定一下子答上来,然后又问那么不var的和用var声明的变量有什么区别?

js里面的属性是有权限设置的,比如我们直接创建一个对象:

// 我心爱的对象 obvar ob = {a:1};// 访问属性ob.a; // => 1// 修改属性值ob.a = 0;ob.a; // => 0// 创建新属性ob.b = 2;ob.b; // => 2// 删除属性delete ob.b;ob.b; // => undefined

但是上面代码中的对象的所有属性都是可迭代、可修改和可配置的吗?

  • 可迭代,意味着我能够通过 for..in 循环来访问该对象的所有属性. 还能通过 Object.keys() 方法获取该对象的所有属性名.
  • 可修改,意味着我能修改该对象的所有属性的值,通过为这些属性赋予一个新值就能修改: ob.a = 1000;.
  • 可配置,意味着我能修改属性的行为,让该对象的属性都是不可迭代的、不可修改的和不可配置的. 只有可配置的属性才能通过 delete 被删除.

我们用var和不用var的一个区别就在可配置属性上,声明一个全局变量,其实都是给window增加一个属性(浏览器环境下),由于window对象是全局对象,因此默认可以不加"window.",全局作用域下,window也可以用this来代替。

var test = function(){ a = 'aa';}test();alert(this.a);//弹出'aa' alert(window.a);//弹出'aa'
var a = 'aa';alert(a); //弹出 'aa'alert(window.a)//弹出'aa' 
a = 'aa';alert(a); //弹出 'aa'alert(window.a)//弹出'aa' 

然后关键来了:

var a = 'aa';delete window.a; // false a = 'aa';delete window.a; // true 

都是为‘window‘对象增加了属性,一个可以删除,一个不能删除。
"delete 不可以删除那些可配置性为false的属性" ,某些内置对象的属性是不可配置的,比如通过变量声明或者函数声明创建的全局对象的属性
不用var创建的变量就可以进行删除。

这个可配置属性在Object.defineProperty()中的第三个参数部分就可以配置,以前在vue框架原理里面也看到过。这个可配置属性名为"configurable",具体看defineProperty()的文档:链接

然后在一些场景里其实也相关了变量函数声明提前,当时跟面试官说了这个,但是面试官否决了,但是确实有些场景确实涉及到了啊:

var var01 = 1;function funtest() { document.write(var01); var var01 = 0;} 

结果为:undefined,函数里面声明的产生了函数作用域,变量声明提前了,所以为undefined。

var var01 = 1;function funtest() { document.write(var01); var01 = 0;} 

结果为:1,不用var就没有提前声明吧,所以我当时其实也答出了一个点,只是没把场景说好,面试官心中可能要的是第一个答案?

 var01 = 1;function funtest() { document.write(var01); var var01 = 0;}

结果为:undefined

var01 = 1;function funtest() { document.write(var01); var01 = 0;}

结果为:1

2.node中间件有哪些?
3.express3.x与4.x的区别?
4.项目有个双重回调为什么不用一层XXXXX?(没听太清楚面试官的意思)

18.2.26深信服Web实习生补坑(已拿到offer)----持续更新中,还没写完

原文地址:https://www.cnblogs.com/zhangmingzhao/p/8496036.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved