16,大厂面试流程慢

本文详细解释了JavaScript中的函数概念,包括函数定义与调用、局部变量的使用、外部变量的访问、函数参数的传递与默认值设置,以及全局变量的作用。同时提到了前端开发的学习资源和面试准备的重要性。
摘要由CSDN通过智能技术生成

//函数定义

function pow(a,b){

let temp = a;

while(–b){

a *= temp;

}

console.log(a);

}

//函数调用

pow(2,3)//2的3次方

pow(3,4)//3的4次方

pow(4,5)//4的5次方

执行结果如下:

这个案例清楚的演示了函数的最主要用途之一,即避免代码重复。

局部变量


局部变量就是定义在函数{}内部的变量,这些变量只能在函数内部才能使用。

例如,上节课中for语句里面的变量i

举个例子:

function doSomething(a,b){

let val = prompt(‘请输入点什么’,0);

console.log(val);

}

doSomething();

alert(val);//ERROR,这里不能使用val

执行结果如下:

由于变量val是在函数内部定义的,只能在函数内部使用,外部不能使用函数内部定义的变量。

外部变量


虽然,函数体外不能访问函数体内部定义的变量,但是反过来,函数体内部是可以访问函数体外部定义的外部变量的。

举个栗子:

let val = prompt(“请输入点什么”,9);

function doSomething(){

console.log(val);//使用函数体外的变量没有问题

}

doSomething();

代码执行结果如下:

用户输入的时候,输入了9

内外变量重名


如果内部变量和外部变量具有相同的名字,那么会优先使用内部变量。

举个栗子:

let num = 1;

function doSomething(){

let num = 2;

console.log(num);//这里使用的是内部变量

}

doSomething();

代码执行结果:

如果一个变量声明在所有函数之外,那么这个变量就是全局变量

程序中声明过多的全局变量不利于程序的优化执行

参数


函数体内部并非完全自治的,很多情况下还是需要一定的输入才能开始执行函数体代码,这个输入就是参数

举个例子:

function bless(name,senc){

console.log(祝${name}${senc})

}

代码执行结果:

上例中我们为行数bless传入了两个参数,分别是人名name和祝福词senc,这样就可以像任何人祝福任何话了。

如果我们在函数体内部修改变量,那么外部的变量是否会对应的变化呢?

举个例子:

let a = 1;

let b = 2;

function exchange(a,b){

let temp = a;

a = b;

b = temp;

}

console.log(a=${a},b=${b});

代码执行结果:

可以发现,外部变量ab的值并没有改变。

造成这种现象的原因是,传入函数的参数是变量的副本,而不是变量本身。

参数默认值


在定义函数的时候,我们可以为传入的参数设定一个默认值,如果在调用函数的时候为提供参数,就会使用默认值代替。

举个例子:

function bless(name,senc=‘身体健康’){

console.log(祝${name},${senc}.);

}

bless(‘特朗普’);

代码执行结果:

以上函数虽然需要两个参数,但是在调用的时候,传入一个参数并不影响使用,这是因为在定义函数的时候已经为senc设定了默认值。

如果我们不为参数设定默认值,但是不传入对应参数会发生什么呢?

举个例子:

function bless(name,senc){

console.log(祝${name},${senc}.);

}

bless(‘特朗普’);

代码执行结果如下:

可见,在不传递参数情况下,参数是undefined

年长代码的默认参数


如果在老版本的JavaScript中如何使用参数默认值呢?

有两种方式:

  1. 使用if判断:

function doSomething(val){

if(val === undefined){

val = ‘default val’;

}

… …

}

  1. 使用||运算符

function doSomething(val){

val = val || ‘default val’;

… …

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

在面试前我花了三个月时间刷了很多大厂面试题,最近做了一个整理并分类,主要内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

  • HTML5新特性,语义化

  • 浏览器的标准模式和怪异模式

  • xhtml和html的区别

  • 使用data-的好处

  • meta标签

  • canvas

  • HTML废弃的标签

  • IE6 bug,和一些定位写法

  • css js放置位置和原因

  • 什么是渐进式渲染

  • html模板语言

  • meta viewport原理

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

-的好处

  • meta标签

  • canvas

  • HTML废弃的标签

  • IE6 bug,和一些定位写法

  • css js放置位置和原因

  • 什么是渐进式渲染

  • html模板语言

  • meta viewport原理

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-nAanocsE-1712672409871)]

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值