js基础知识巩固(3)

1.数组

数组:(Array)是一种可以按顺序保存数据的数据类型

声明语法:

let 数组名 = [数据1,数据2,....,数据n]
let arr = new Array(数据1,数据2,....,数据n)

数组是按顺序保存的,所以每个数据都有自己的编号

在数组中,数据的编号也叫索引或下标

数组可以存储任意类型的数据

取值语法:

数组名[下标]
1.1遍历数组

1.2 操作数组

数组的本质就是数据的结合,操作数据无非就是增 删 改 查 语法

1.2.1 新增

数组.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。

语法:

arr.unshift(新增的内容)方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。

语法:

1.2.2 删除

数组.pop()方法从数组中删除最后一个元素,并返回该元素的值。

语法:

arr.pop()

数组.shift()方法从数组中删除第一个元素,并返回该元素的值。

arr.shift()

数组.splice()方法从数组中删除指定元素。

arr.splice()

start起始位置:

指定修改的开始位置(从0计数)

deleteCoint:

表示要移除的数组元素打个数

可选的,如果省略则默认从指定的起始位置删除到最后。

2.函数

函数:function,是被设计为执行特定任务的代码块

函数可以把具有相同或者相似逻辑的代码“包裹起来”,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用

2.1函数使用

函数的声明语法

function say(){
     dacument.write('hello')
}

函数命名规范

  • 和变量命名基本一致
  • 尽量小驼峰命名法
  • 前缀应该为动词

函数的调用语法

注意:声明(定义)的函数必须调用才会真正被执行,使用()调用函数

2.2函数传参

参数列表:

  • 传入数据列表
  • 声明这个函数需要传入几个数据
  • 多个数据用逗号隔开

例子:

function getSum(num1,num2){
  document.write(num1 + num2)
}

function getSquare(num1){
  document.write(num1*num1)
}

调用语法:

调用函数时,需要传入几个数据就写几个,用逗号隔开

getSum(1,2)
getSquare(1)

形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)

形参可以理解为是在这个函数内声明的变量(比如num = 10)

实参可以理解为是给这个变量赋值

开发时尽量保持形参和实参个数一致

补充:参数默认值

如果一个变量不给值,默认为undefined

如果不输入实参,上述案例则出现undefined + undefined ,结果为NaN

💡可以给形参默认值,可以默认为0,这样程序更加严谨

2.3函数返回值

之前遇到过的很多函数都具有返回值

只是这些函数是JS底层内置的,我们直接就可以使用

💡注意:有些函数没有返回值

alert('我是弹窗,不需要返回值')

要根据要求来设定需不需要返回值

✨当函数需要返回数据出去时,用return关键词

语法:

细节:

  • 在函数体中使用return关键字能将内部的执行结果交给函数外部使用
  • return后面的代码不再被执行,会立即结束当前函数,所以return后面的数据不要换行写
  • return函数可以没有return,这种情况函数默认返回值为undefined

💡:返回值返回的是数组

return [a,b] //可返回多个值

函数细节补充:

  • 两个相同的函数后面的会覆盖前面的函数
  • 在js中,实参的个数和形参的个数可以不一致

如果形参过多会自动填上undefined

如果实参过多那么多余的实参会被忽略(函数内部有一个arguments,里面装着所有的实参)

  • 函数一旦碰到return就不会在往下运行了,函数的结束就用return

2.4函数作用域

通常来说,一段代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域

作用域的使用提高了程序逻辑的局限性,增强了程序的可靠性,减少了名字冲突。

变量的访问原则:

只要是代码,就至少有一个作用域

写在函数内部的局部作用域

如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域

访问原则:在能够访问到的情况下,先局部,局部没有再找全局,即采用就近原则的方式

2.5匿名函数

匿名函数:没有名字的函数,无法直接使用。

使用方式:

  • 函数表达式
  • 立即执行函数
2.5.1函数表达式

将匿名函数赋值给一个变量,并且通过变量名称进行调用,我们将这个称为函数表达式

语法:

调用:

💡注:其中函数的形参和实参使用跟具名函数一致

2.5.2立即执行函数

避免全局变量之间的污染

语法:

(function(){
   console.log(1)
})();

(function(){
  console.log(1)
}());
//不用调用,立即执行

多个立即执行函数要用;隔开,要不然会报错

补充:逻辑中断

开发中还会见到以下的写法:

其实类似参数的默认值写法

1.逻辑运算符里的短路

短路:只存在于&&和||中,当满足一定条件会让右边代码不执行

原因:通过左边就能得到整个式子的结果,因此没有必要再判断右边

运算结果:无论&&还是||,运算结果都是最后被执行的表达式值,一般用在变量赋值

2.转换为Boolean型

显示转换:

1.Boolean(内容)

记忆:“、0、undefined、null、false、NaN转换为布尔值后都是false,其余为true”

隐式转换:

  1. 有字符串的加法“ ”+ 1 ,结果是“1”
  2. 减法 - (像大多数数学运算一样)只能用于 数学,它会使空字符串“”转换为0
  3. null经过数字转换之后会变为0
  4. undefined经过数字转换之后会变为NaN

1.对象

对象(object):JavaScript里的一种数据类型

可以理解为是一种无序的数据集合,注意数组是有序的数据集合

用来描述某个事物,例如描述一个人

人有姓名、年龄、性别等信息

如果用多个变量保存则比较散,用对象比较统一

描述一个人的信息:

  • 静态特征(性别、年龄、爱好等)=>可使用数字、字符串、数组、布尔类型等表示
  • 动态行为(点名、唱、跳)=>使用函数表示
let obj ={
    name:'soda'
    age:19,
    gender:'女'
}
1.1对象使用
1.1.1对象声明语法

实际开发中,我们多用花括号。{}是对象字面量

1.1.2对象有属性和方法组成
  • 属性;信息或叫特征(名词)
  • 方法:功能或叫行为(动词)

1.1.3属性

数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的

属性都是成对出现的,包括属性名和值,他们之间使用英文:分隔

多个属性之间使用英文,分隔

属性就是依附在对象上的变量(外面是变量,对象内是属性)

属性名可以使用“”或,一般情况下省略,除非名称遇到特殊符号如空格、中横线等

对象本质是无序的数据集合,操作数据无非就是增 删 改 查 语法

1.查
  • 声明对象,并添加了若干属性后,可以使用 . 获得对象中属性对应的值,称为属性访问
  • 语法:对象名.属性
  • 简单理解就是获取对象里面的属性值

补充:查的另一种写法:

  • 对于多词属性或则 - 等属性,点操作就不能用了
  • 可采取:对象['属性']方式,单引号和双引号都可以
console.log(obj.name)
console.log(obj['name'])
2.改

语法:对象名.属性 = 新值

3.增

语法:对象名.新属性 = 新值

4.删

语法:delete 对象名.属性

1.1.4对象中的方法

数据的行为性的信息称为方法,其本质是函数

  1. 方法是由方法名和函数两部分构成,他们之间使用:分隔
  2. 多个属性之间使用英文 , 分隔
  3. 方法是依附在对象中的函数
  4. 方法名可以使用“”或 ' ',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
1.1.5对象中的方法
  • 声明对象,并添加了若干方法后,可以使用 . 调用对象中的函数,称之为方法调用
  • 也可以添加形参和实参

💡注:别忘了给方法名后加小括号

1.2遍历对象

  • 一般不用这种方式遍历数组、主要是用来遍历对象
  • for in 语法中的K是一个变量,在循环的过程中依次代表对象的属性名
  • 由于k是变量,所以必须使用[]语法解析
  • 一定记住:k是获得对象的属性名,对象名[k]是获得属性值
1.3内置对象
Math:

Math对象是js提供的一个“数学”对象(提供了一系列做数学运算的方法)

Math包含的方法有

生成任意范围随机数:

Math.random() 随机数函数,返回一个0~1之间,并且包括0不包括1的随机小数 [0,1)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值