JavaScript基础(2)

一、运算符

1.1 算术运算符

数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
%取余:开发中经常作为某个数字是否被整除

1.2 赋值运算符

赋值运算符:=    +=     -=    *=    /=    %=

1.3 一元运算符

自增:++       自减符号:--       经常用于计数来使用
前置自增:先自加,再使用(记忆口诀:++在前先加)
后置自增:先使用,再自加(记忆口诀:++在后后加)
面试题:

let i = 1
console.log(i++ + ++i + i)  //1+3+3=7

1.4 比较运算符

比较运算符(比较结果为boolean类型,即只会得到true或false):

>:左边是否大于右边            <:左边是否小于右边             
>=:左边是否大于或等于右边    <=:左边是否小于或等于右边        
==:左右两边是否相等         ===:左右两边是否类型和值都相等  
!==:左右两边是否不全等

字符串比较,是比较的字符对应的ASCII码从左往右依次比较
如果第一位一样再比较第二位,以此类推
NaN不等于任何值,包括它本身(typeof NaN的结果为Number)
尽量不要比较小数,因为小数有精度问题(0.1+0.2 != 0.3)
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢===或者!==

1.5 逻辑运算符

&&  逻辑与  并且      ||  逻辑或  或者     !  逻辑非  取反
逻辑运算符里的短路:&& 左边为false就短路     || 左边为true就短路

console.log(10 && 20); //20
console.log(10 || 20); //10

二、语句

2.1 表达式和语句

表达式:是一组代码的集合,JavaScript解释器会将其计算出一个结果
语句:js整句或命令,比如:if 语句、for循环语句
区别:表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
表达式:3+4      语句:alert()弹出对话框
其实某些情况,也可以把表达式理解为语句,因为它是在计算结果,也是做事

2.2 分支语句

分支语句可以让我们有选择性的执行想要的代码
分支语句包含:
if 分支语句
if 语句有三种使用:单分支、双分支、多分支
括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
三元运算符
比 if 双分支更简单的写法,有时候也叫做三元表达式

条件 ? 满足条件执行的代码 : 不满足条件执行的代码
num1 > num2 ? num1 : num2

一般用来取值switch语句
1.switch case语句一般用于等值判断,不适合于区间判断
2.switch case一般需要配合break关键字使用,没有break会造成case穿透

2.3 循环结构

在JavaScript中有for循环、while、do…while三种循环结构。

2.3.1 断点调试

作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
浏览器打开调试界面
1.按F12打开开发者工具        2.点到sources一栏         3.选择代码文件

2.3.2 双重for循环

我们可以把里面的循环看做是外层循环的语句
外层循环循环一次,里面的循环执行全部

2.3.3 while循环

循环:重复执行某段代码,而while:在…期间
while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
while循环注意事项:循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程
所以,循环需要具备三要素:1.变量起始值
2.终止条件(没有终止条件,循环会一直执行,造成死循环)
3.变量变化量(用自增或者自减)

2.3.4 do while循环

do… while语句其实是while语句的一个变体。该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环。

三、数组

3.1 创建数组

利用new创建数组:

var 数组名 = new Array()

注意Array(),A要大写
利用数组字面量创建数组:

var 数组名 = []
var arr = [1,2,'三',true]

数组中可以存放任意类型的数据,例如字符串,数字,布尔值等

3.2 数组中新增元素

可以通过修改length长度以及索引号增加数组元素
可以通过修改length长度来实现数组扩容的目的:

var arr = ['red', 'blue', 'green']
arr.length = 4
console.log(arr[3])  //undefined

length 属性是可读写的。
其中索引号是 4 的空间没有给值,就是声明变量未给值,默认值就是undefined。

可以通过索引号实现修改,追加数组元素的目的:

var arr = ['red', 'blue', 'green']
arr[3] = 'pink'  //追加新的数组元素
arr[0] = 'white'  //替换原来的数组元素
arr = '达咩'  //不要直接给数组名赋值,否则里面的数组元素都没了

四、函数

函数:就是封装了一可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

4.1 声明函数

function 函数名() {
	// 函数体代码
}

function是声明函数的关键字,必须小写
由于函数一般是为了实现某个功能才定义的,所以通常我们将函数名命名为动词,比如getSum
声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码。

4.2 函数的封装

函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口
简单理解:封装类似于将电脑配件整合组装到机箱中(类似快递打包)

4.3 函数形参和实参个数不匹配问题

参数个数说明
实参个数 = 形参个数输出正确结果
实参个数 > 形参个数只取到形参的个数
实参个数 < 形参个数多的形参定义为undefined,结果为NaN

注意:在JavaScript中,形参的默认值是undefined。

4.4 函数的返回值

函数都是有返回值的
1.如果有return,则返回return后面的值
2.如果没有return,则返回undefined
return:不仅可以退出循环,还能够返回return语句中的值,同时还可以结束当前的函数体内的代码

4.5 arguments的使用

当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。

function fn() {
	console.log(arguments) //里面存储了所有传递过来的实参
}
fn(1, 2, 3)  //Arguments(3) [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]

案例:

//利用函数求任意个数的最大值
function getMax() {
	var max = arguments[0]
	for (var i = 0; i < arguments.length; i++) {
		if (arguments[i] > max){
			max = arguments[i]
		}
	}
	return max
}
console.log(getMax(1, 22, 3, 45))

4.6 函数的两种声明方式

1.利用函数关键字自定义函数(命名函数)

function fn(){ }

2.函数表达式(匿名函数)

var 变量名 = function(){ } 
var fun = function (aru) {
	console.log(aru)
}
fun('hello') //fun是变量名,不是函数名

(1)fun是变量名,不是函数名
(2)函数表达式声明方式跟声明变量差不多,只不过变量里面存的是值,而函数表达式里面存的是函数
(3)函数表达式也可以进行传递参数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值