栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaScript基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript基础

一、JavaScript介绍 一、JavaScript书写位置

​ 1、内部:直接写在HTML里script标签写在上面
​ 2、外部:写在js文件里,通过

二、JavaScript注释 1、单行注释:

​ //

​ 快捷键:ctrl+/

2、多行注释:

​
​ 快捷键:shift+alt+A

三、JavaScript输入输出语法 1、输出语法

​ 语法1:document.write(‘要输出的内容’)
​ 作用:向boody内输出内容
​ 注意:如果输出的内容写的是标签会被解析成网页元素。
​ 语法2:alert(‘要输出的内容’)
​ 作用:页面弹出警告对话框
​ 语法1:console.log(‘控制台打印’)
​ 作用:控制台输出语法,程序员调试使用

2、输入语法

​ 语法:prompt(‘请输入姓名:’)
​ 作用:显示一个对话框,对话框包含一条文字信息,用来提示用户输入文字

二、变量 一、变量是什么

​ 变量就是计算机存储数据的盒子

二、变量的基本使用 1、声明变量:

​ 要想使用变量首先要创建变量。
​ 语法:let 变量名
​ 举例:let age (声明了一个变量名为age的变量

2、变量赋值

​ 首先要声明变量
​ let age
​ 然后给变量赋值
​ age = 18
​ 符合写法
​ let age = 18

3、注意:

​ 不允许声明多个相同变量。
​ 可以同时生成多个不同的变量但不提倡:
​ let age = 18, unanme = ‘张三’
​ 提倡:
​ let age = 18
​ let uname = ‘张三’
​ 控制台可以一行写
​ console.log(age,uname)

4、变量名命名规范

​ 不能用关键字如let,var,if,for等
​ 只能用下划线、字母、数字、$组成,且数字不能开头
​ 严格区分大小写

​ top,name不能命名

​ 起名要有意义
​ 小驼峰命名法,第一个单词小写,后面每个单词首字母大写

三、数组 一、声明语法

​ let 数组名 = [数据1,数据2,…,数据n]
​ 例
​ let names = [‘小明’ , ‘小刚’ , ‘小红’]
​ 数组是按顺序保存的,所以每个数据都有编号
​ 计算机编号从0开始
​ 数组可以储存任意类型的数组

​ 数组中的每一条数据称为元素

二、取值语法

​ 数组名[下标]

三、遍历数组

四、数组-改

数组名[下标] = 数据,在指定位置修改数据

  
numArr[1] = 6//将数组中下标为1的数据改为6
五、数组-增

数组名.push(增加的数据)在最后添加,可以多个数据,并且返回新的数组长度

数组名.unshift(增加的数据)在开头添加,可以多个数据,并且返回新的数组长度

数组名[下标] = 数据,在指定位置添加数据

arr.push('pink')//在最后添加一个pink的数据
numArr[5] = 6//在数组后下面再添加一个下标为5的数据:6
六、数组-删

数组名.pop()删除数组中最后一条数据,并返回删除的元素

数组名.shift()删除数组中第一条数据,并返回删除的元素

数组名.splice(要删除数据的索引号,索引号开始往后删除的个数)//后面的参数不写默认从选择的索引号开始删完

arr.splice(1,2)//从第1个索引号开始往后删除 2个数据
numArr.length = 4//删除数组长度为4

四、常量 一、基本使用

​ 概念:使用const声明的变量称为常量。
​ 使用场景:当某个变量永远不会改变,就可以使用const来声明。
​ 常量使用:
​ const G = 9.8
​ console.log(G)
​ 注意:常量不允许重新赋值,声明的时候必须赋值。

五、数据类型 一、基本数据类型

​ number 数字型
​ string 字符串型
​ boolean 布尔型
​ undefined 未定义型
​ null 空类型

1.数字类型(Number)

​ 数字可以有很多操作
​ +:求和
​ -:求差
​ *:求积
​ /:求商
​ %:取余(经常作为某个数字是否被整除)
​ 运算时有优先级
​ NaN代表一个计算错误。

2.字符串类型(string)

​ 通过单引号,双引号,反引号包裹的都是字符串。
​ 字符串拼接:+运算符 可以实现字符串的拼接
​ 数字相加,字符相连
​ 模板字符串:

document.write(`大家好,我叫${name},今年${age}岁`)
3.布尔类型(boolean)

​ true flase

4.未定义类型(undefined)

​ 变量没内容
​ let num
​ console.log(num)输出就为undefined

5.空类型(null)

​ 变量有内容,为空
​ let obj = null
​ console.log(obj)输出就为null

二、检测数据类型

typeof用来检测数据类型

typeof 数据;

typeof(数据);

 
三、数据类型转换 1.隐式转换

加号两边只要有一个字符串,都会把另一个转换成字符串

除了+以外的算术运算符 比如- * /都会把数据转换成数字类型

  
2.显示转换

number(数据)

转换成数字类型,转换失败结果为NaN(not a number)

parseInt(数据)

只保留整数

parseFloat(数据)

可以保留小数

String(数据);

变量名.toString()

console.log(num+‘’)

转换成字符串

Boolean(数据)

转换成布尔类型

" "、0、undefined、null、false、NaN转换为布尔类型后都是false,其余都为true

  
三、流程控制 一、运算符 1.赋值运算符

可以用:+= , -= , *= , /= ,%=来给数据赋值计算

  
2.自增运算符

一元运算符:

只有一个操作数

++ , –

一般使用后置自增

  
3.比较运算符

1.==不比较数据类型

2.===还要比较数据类型

3.!==也要比较数据类型

  
4.逻辑运算符

1.&&:与,一假则假

2.||:或,一真则真

3.!:非,取反

  

逻辑运算符优先级:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-upZ2BS0w-1658822076100)(img/yunsuanfuyouxianji.png)]

二、语句 1.顺序结构

从上往下按顺序执行

2.分支结构 1.if分支语句 单分支

双分支

多分支

2.三元运算符

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


3.switch分支语句

4.if else和switch case的区别

if else判断范围更广,switch case通常处理case值比较确定的情况;

分支少时if else执行效率更高;

分支多时switch case执行效率更高;

要注意的是switch必须是===。

3.循环结构 1.while循环

​ whille(循环条件) {

​ 要重复执行的代码(循环体)

​ }

  
2.结束循环

break退出整个循环语句

continue退出当前循环语句,继续执行下一条

 
3.for循环

for (变量起始值; 终止条件; 变量变化量;) {

​ //循环体

}

  
4.for while循环的区别

明确循环次数的用for循环;

不明确循环次数的用while。

5.嵌套循环

for(外部声明记录循环次数的变量; 循环条件; 变化值;) {

​ for(内部声明记录循环次数的变量; 循环条件; 变化值;) {

​ 循环体

​ }

}

  
三、函数 1.函数的作用:

可以执行特定任务的代码块,可以实现代码复用,有利于精简代码

2.使用函数 : 1.函数的命名规范:

小驼峰命名法

前缀为动词

2.声明函数(封装函数)

function 函数名() {}

fuction sayHi() {
	console.log('hi~~~')
}
3.函数的调用方法

函数名(),必须要加小括号

sayHi()
4.函数参数

fuction 函数名(形参列表) {

​ 函数体

}

函数(实参)

形参:声明函数时写在函数名右边括号里

实参:调用函数时写在函数名右边括号里(实参可以是变量)

形参可以理解为在函数内声明的变量,实参理解为给变量赋值

开发中实参个数尽量与形参个数一致

5.函数的默认值

如果用户不输入实参就会出现(undefined,undefiend)

因此我们可以在形参后添加(start = 0, end = 0)//形参后面不一定跟的是0,如数组后跟=[]

  
6.函数返回值

当调用某个函数,这个函数会返回一个结果,

这就是有返回值的函数

  
7.函数细节补充

1.两个相同的函数后面的会覆盖前面的函数

2.js中实参和形参的个数可以不一致

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

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

3.函数一旦碰上return就不会再往下执行了,函数的结束用return

8.作用域

限定代码可用性范围的称为作用域

全局作用域

全局有效,作用于整个代码所执行的环境(函数外部)

和.js文件是全局作用域 全局变量

全局作用域里的变量称为全局变量,任何区域都可以访问和修改

块级作用域

局部有效,作用于函数内的代码环境。因为跟函数有关系,所以也称为函数作用域。

局部变量

局部作用域里的变量称为局部变量,只能在当前函数内访问和修改

**

如果局部变量未用let也当全局变量

形参可以看作函数的局部变量

变量的访问原则

在能够访问到的情况下先局部,局部没有再找全局(就近原则)

9.匿名函数

没有函数名的函数

fuction() {}

使用方式 1.函数表达式

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

语法:

  

函数表达式与具名函数的不同:

函数表达式中调用函数要写在声明变量后,

具名函数调用函数可以写在任意位置

2.立即执行函数

避免全局变量之间污染

无需调用立即执行,用’ ; '隔开


10.逻辑中断

在&&和||中,当满足一定条件会让右边代码不再执行

&& 左边为false时中断

|| 左边为true时中断

因此我们可以利用逻辑中断来给变量的形参赋初始值

语法:

  
11.对象

对象是一种数据类型 ,无序的数据的集合,可以详细的描述某个事物。

1.对象的声明方法

let 对象名 = {

​ 属性名: 属性值,

​ 方法名: 函数

}

属性:

属性一般是名词;

属性和属性值之间用’ : '分隔

属性之间用’ , '分隔

属性名可以用’ '包起来,通常可以用在属性名带有特殊符号时//‘goods-name’: HUAWEI,

方法:

方法一般是动词;

方法名和函数之间用’ : '分隔

方法也要用’ , '分隔

方法是依附在对象中的函数

方法名也可以用’ '包起来,情况和属性相同

2.对象-查

语法:

对象名.属性

对象名[‘属性’]一定要带’ ’ 当属性名带’ '时用这个方法可以查到

3.对象-改

语法:

对象名.属性 = 新的属性值

4.对象-增

语法:

对象名.新属性 = 属性值

5.对象-删

语法:

delete 对象名.属性

6.对象中方法的调用

对象名.方法(实参)

  
8.内置对象

数学函数Math:

Math.ceil(数字)//向上取整

Math.floor(数字)//向下取整

Math.round(数字)//四舍五入,负数时-1.51===-2但-1.5===-1。

Math.max(数字)//取最大值

Math.min(数字)//取最小值

Math.bas(数字)//取绝对值

Math.pow(4, 2)//4的2次方

Math.sqrt(16)//16的平方根

可以在MDN中查询。。。

内置对象生成随机数

Math.random()//返回0-1之间的随机数,包括0不包括1

生成0-10的随机数:

Math.floor(Math.random() * (10 + 1))//因为 随机数不包括1所以乘11

生成5-10的随机数:

Math.floor(Math.random() * (5 + 1)) + 5//给0+5就是5-10

生成N-M之间的随机数:

Math.floor(Math.random() * (M  - N + 1)) + N

输出数组中随机元素:

  
四、栈和堆

内存分为栈和堆,

基本数据类型的值存在栈里,复杂数据类型、引用数据类型的值存在堆里。

但是复杂数据类型和引用数据类型还有一个地址存在栈里,在取他们的值时,是通过栈里的地址来找到堆里的值。

因此就有了:


)//取最小值

Math.bas(数字)//取绝对值

Math.pow(4, 2)//4的2次方

Math.sqrt(16)//16的平方根

可以在MDN中查询。。。

内置对象生成随机数

```js
Math.random()//返回0-1之间的随机数,包括0不包括1

生成0-10的随机数:

Math.floor(Math.random() * (10 + 1))//因为 随机数不包括1所以乘11

生成5-10的随机数:

Math.floor(Math.random() * (5 + 1)) + 5//给0+5就是5-10

生成N-M之间的随机数:

Math.floor(Math.random() * (M  - N + 1)) + N

输出数组中随机元素:

  
四、栈和堆

内存分为栈和堆,

基本数据类型的值存在栈里,复杂数据类型、引用数据类型的值存在堆里。

但是复杂数据类型和引用数据类型还有一个地址存在栈里,在取他们的值时,是通过栈里的地址来找到堆里的值。

因此就有了:


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号