文末
从转行到现在,差不多两年的时间,虽不能和大佬相比,但也是学了很多东西。我个人在学习的过程中,习惯简单做做笔记,方便自己复习的时候能够快速理解,现在将自己的笔记分享出来,和大家共同学习。
个人将这段时间所学的知识,分为三个阶段:
第一阶段: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. 条件语句语法
-
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
-
if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
-
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对象,然后将它赋值给一个变量,比如:
说明:
上面的代码,如果把javascript写在元素的上面,就会出错,因为页面上从上往下加载执行的,javascript去页面上获取元素div1的时候,元素div1还没有加载。
解决方法有两种:
第一种方法:将javascript放到页面最下边
第二种方法:设置页面加载完成执行的函数,在执行函数里面获取标签元素。
说明:
onload是页面所有元素加载完成的事件,给onload设置函数时,当事件触发就会执行设置的函数。
2. 小结
- 获取标签元素需要等待页面加载完成,使用document.getElementById(‘标签id’);
操作标签元素属性
学习目标
- 能够知道获取和设置标签元素属性
1. 属性的操作
首先获取的页面标签元素,然后就可以对页面标签元素的属性进行操作,属性的操作包括:
-
属性的读取
-
属性的设置
属性名在js中的写法
-
html的属性和js里面属性大多数写法一样,但是“class” 属性写成 “className”
-
“style” 属性里面的属性,有横杠的改成驼峰式,比如:“font-size”,改成”style.fontSize”
2. innerHTML
innerHTML可以读取或者设置标签包裹的内容
3. 小结
标签属性的获取和设置:
-
var 标签对象 = document.getElementById(‘id名称’); -> 获取标签对象
-
var 变量名 = 标签对象.属性名 -> 读取属性
-
标签对象.属性名 = 新属性值 -> 设置属性
数组及操作方法
学习目标
- 能够根据下标删除指定元素
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)
参数解析:
-
start:必需,开始删除的索引。
-
num:可选,删除数组元素的个数。
-
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请求中间件如何处理并发
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】