2024年面试官问你JavaScript,直接把这篇文章甩给他,程序员面试技巧和注意事项

文末

从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。

个人将这段时间所学的知识,分为三个阶段:

第一阶段:HTML&CSS&JavaScript基础

第二阶段:移动端开发技术

第三阶段:前端常用框架

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 推荐学习方式:针对某个知识点,可以先简单过一下我的笔记,如果理解,那是最好,可以帮助快速解决问题;

  • 大厂的面试难在,针对一个基础知识点,比如JS的事件循环机制,不会上来就问概念,而是换个角度,从题目入手,看你是否真正掌握。所以对于概念的理解真的很重要。

4. 小结

  • JavaScript的使用方式有三种,分别是:

  • 行内式

  • 内嵌式

  • 外链式

变量和数据类型


学习目标

  • 能够说出常用的数据类型

1. 定义变量

JavaScript 是一种弱类型语言,也就是说不需要指定变量的类型,JavaScript的变量类型由它的值来决定, 定义变量需要用关键字 ‘var’, 一条JavaScript语句应该以“;”结尾

定义变量的语法格式:

var 变量名 = 值;

var iNum = 123;

var sTr = ‘asd’;

//同时定义多个变量可以用","隔开,公用一个‘var’关键字

var iNum = 45,sTr=‘qwe’,sCount=‘68’;

2. JavaScript注释

JavaScript的注释分为单行注释(//注释内容)和多行注释(/多行注释/)

3. 数据类型

js中有六种数据类型,包括五种基本数据类型和一种复杂数据类型(object)。

5种基本数据类型:

1、number 数字类型

2、string 字符串类型

3、boolean 布尔类型 true 或 false

4、undefined undefined类型,变量声明未初始化,它的值就是undefined

5、null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面上获取不到对象,返回的值就是null

1种复合类型:

1、object 后面学习的数组、函数和JavaScript对象都属于复合类型

//1.1 数字 number

var iOne = 10.1;

//1.2 字符串 string

var sStr = ‘1234’;

//1.3 布尔 boolean;

var bIsTrue = false;

//1.4 未定义 undefined

var unData;

//1.5 null 表示空对象

var nullData = null;

//1.6 object 表示对象类型

var oObj = {

name:“隔壁老王”,

age:88

}

// 获取变量的类型

var type = typeof(oObj);

alert(type);

// 获取对象的name属性

alert(oObj.name);

4. 变量命名规范

1、区分大小写

2、第一个字符必须是字母、下划线(_)或者美元符号($)

3、其他字符可以是字母、下划线、美元符或数字

5. 匈牙利命名风格

对象o Object 比如:oDiv

数组a Array 比如:aItems

字符串s String 比如:sUserName

整数i Integer 比如:iItemCount

布尔值b Boolean 比如:bIsComplete

浮点数f Float 比如:fPrice

函数fn Function 比如:fnHandler

6. 小结

  • js中有六种数据类型,分别是:

  • number

  • string

  • boolean

  • undefined

  • null

  • object

函数定义和调用


学习目标

  • 能够写出函数的定义和调用方式

1. 函数定义

函数就是可以重复使用的代码块, 使用关键字 function 定义函数。

2. 函数调用

函数调用就是函数名加小括号,比如:函数名(参数[参数可选])

3. 定义有参数有返回值的函数

定义函数时,函数如果有参数,参数放到小括号里面,函数如果有返回值,返回值通过 return 关键字来返回

函数中’return’关键字的作用:

1、返回函数中的值

2、执行完return函数执行结束

4. 小结

function 函数名(参数[参数可选]){

// 函数的代码实现

}

函数名(参数[参数可选])

变量作用域


学习目标

  • 能够知道变量的使用范围

1. 变量作用域的介绍

变量作用域就是变量的使用范围,变量分为:

  • 局部变量

  • 全局变量

2. 局部变量

局部变量就是在函数内使用的变量,只能在函数内部使用。

3. 全局变量

全局变量就是在函数外定义的变量,可以在不同函数内使用。

4. 小结

  • 局部变量只能在函数内部使用

  • 全局变量可以在不同函数内使用

条件语句


学习目标

  • 能够写出多条件判断的条件语句

1. 条件语句的介绍

条件语句就是通过条件来控制程序的走向

2. 条件语句语法

  1. if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

  2. if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

  3. if…else if…else 语句 - 使用该语句来判断多条件,执行条件成立的语句

3. 比较运算符

假如 x = 5, 查看比较后的结果:

| 比较运算符 | 描述 | 例子 |

| — | — | — |

| == | 等于 | x == 8 为 false |

| === | 全等(值和类型) | x === 5 为 true; x === “5” 为 false |

| != | 不等于 | x != 8 为 true |

| > | 大于 | x > 8 为 false |

| < | 小于 | x < 8 为 true |

| >= | 大于或等于 | x >= 8 为 false |

| <= | 小于或等于 | x <= 8 为 true |

比较运算符示例代码:

var iNum01 = 12;

var sNum01 = ‘12’;

if(iNum01==12){

alert(‘相等!’);

}

else{

alert(‘不相等!’)

}

// “==” 符号默认会将符号两边的变量转换成数字再进行对比,这个叫做隐式转换

if(sNum01==12){

alert(‘相等!’);

}

else{

alert(‘不相等!’)

}

// “===” 符号不会转换符号两边的数据类型

if(sNum01===12){

alert(‘相等!’);

}

else{

alert(‘不相等!’)

}

// 多条件判断

var sFruit = “苹果”;

if (sFruit == “苹果”) {

alert(“您选择的水果是苹果”);

} else if (sFruit == “鸭梨”) {

alert(“您选择的水果是鸭梨”);

} else {

alert(“对不起,您选择的水果不存在!”)

}

4. 逻辑运算符

假如 x=6, y=3, 查看比较后的结果:

| 比较运算符 | 描述 | 例子 |

| — | — | — |

| && | and | (x < 10 && y > 1) 为 true |

| || | or | (x5 || y5) 为 false |

| ! | not | !(x==y) 为 true |

逻辑运算符示例代码:

var x = 6;

var y = 3;

if(x < 10 && y > 1){

alert(‘都大于’);

}

else{

alert(‘至少有一个不大于’);

}

if(x > 5 || y > 7 ){

alert(‘至少有一个大于’);

}

else{

alert(‘都不大于’);

}

if(!(x == y)){

alert(‘等于’)

}

else{

alert(‘不等于’)

}

5. 小结

  • 条件语句三种写法

  • if 语句 适用于单条件判断

  • if else 语句 适用于两种条件的判断(成立和不成立条件判断)。

  • if else if else 语句 适用于多条件判断

获取标签元素


学习目标

  • 能够写出获取标签元素的操作

1. 获取标签元素

可以使用内置对象 document 上的 getElementById 方法来获取页面上设置了id属性的标签元素,获取到的是一个html对象,然后将它赋值给一个变量,比如:

这是一个div元素

说明:

上面的代码,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载。

解决方法有两种:

第一种方法:将javascript放到页面最下边

这是一个div元素

第二种方法:设置页面加载完成执行的函数,在执行函数里面获取标签元素。

说明:

onload是页面所有元素加载完成的事件,给onload设置函数时,当事件触发就会执行设置的函数。

2. 小结

  • 获取标签元素需要等待页面加载完成,使用document.getElementById(‘标签id’);

操作标签元素属性


学习目标

  • 能够知道获取和设置标签元素属性

1. 属性的操作

首先获取的页面标签元素,然后就可以对页面标签元素的属性进行操作,属性的操作包括:

  • 属性的读取

  • 属性的设置

属性名在js中的写法

  1. html的属性和js里面属性大多数写法一样,但是“class” 属性写成 “className”

  2. “style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”

这是一个链接

2. innerHTML

innerHTML可以读取或者设置标签包裹的内容

这是一个div元素

3. 小结

标签属性的获取和设置:

  1. var 标签对象 = document.getElementById(‘id名称’); -> 获取标签对象

  2. var 变量名 = 标签对象.属性名 -> 读取属性

  3. 标签对象.属性名 = 新属性值 -> 设置属性

数组及操作方法


学习目标

  • 能够根据下标删除指定元素

1. 数组的介绍

数组就是一组数据的集合,javascript 中,数组里面的数据可以是不同类型的数据,好比 python 里面的列表。

2. 数组的定义

// 实例化对象方式创建

var aList = new Array(1,2,3);

// 字面量方式创建,推荐使用

var aList2 = [1,2,3,‘asd’];

3. 多维数组

多维数组指的是数组的成员也是数组,把这样的数组叫做多维数组。

var aList = [[1,2,3],[‘a’,‘b’,‘c’]];

4. 数组的操作

1、 获取数组的长度

var aList = [1,2,3,4];

alert(aList.length); // 弹出4

2、 根据下标取值

var aList = [1,2,3,4];

alert(aList[0]); // 弹出1

3、 从数组最后添加和删除数据

var aList = [1,2,3,4];

aList.push(5);

alert(aList); //弹出1,2,3,4,5

aList.pop();

alert(aList); // 弹出1,2,3,4

4、根据下标添加和删除元素

arr.splice(start,num,element1,…,elementN)

参数解析:

  1. start:必需,开始删除的索引。

  2. num:可选,删除数组元素的个数。

  3. elementN:可选,在start索引位置要插入的新元素。

此方法会删除从start索引开始的num个元素,并将elementN参数插入到start索引位置。

React

  • 介绍一下react

  • React单项数据流

  • react生命周期函数和react组件的生命周期

  • react和Vue的原理,区别,亮点,作用

  • reactJs的组件交流

  • 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

  • 项目里用到了react,为什么要选择react,react有哪些好处

  • 怎么获取真正的dom

  • 选择react的原因

  • react的生命周期函数

  • setState之后的流程

  • react高阶组件知道吗?

  • React的jsx,函数式编程

  • react的组件是通过什么去判断是否刷新的

  • 如何配置React-Router

  • 路由的动态加载模块

  • Redux中间件是什么东西,接受几个参数

  • redux请求中间件如何处理并发

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值