基础语法01

一、js简介

1.js是什么

运行在浏览器上的编程语言,实现人机交互

2.js的组成

ECMASript和Web APIs(由DOM页面文档类型和BOM浏览器对象模型组成)

3.js书写位置

内部JavaSript:

直接写在html文件里,用sript标签包住,在的上方

外部JavaSript:

通过sript标签,引用到html页面里中间不要写代码,否则会被忽略

内联JavaSript:代码写在标签内部

4.js的注释和结束符

单行注释 ctrl+/
多行注释 shift+alt+a
结束符 分号,可写可不写

5.js输入输出语法

输出

document.write(‘要输出的内容’)也可以加标签(<h1>要输出的内容</h1>),标签加在``里不起效
alert(‘’)
console.log(‘控制台打印’)

输入

prompt(‘’)

6.字面量

数字字面量,字符串字面量,数组字面量,对象字面量

二、变量

1.理解、作用

存储数据的容器,用于存储数据

2.如何初始化

let 变量名 = 值

3.声明变量

let age = 18,name = asd,逗号隔开但最好一行声明一个变量

4.变量命名规则和规范

规则

不能用关键字
关键字:有特殊含义的字符,JavaScript内置的一些英语词汇。例如:let、var、if、for停
只能用下划线、字母、数字、$组成,且数字不能开头
字母严格区分大小写,如Age和age是不同的变量

规范

起名要有意义
遵守小驼峰命名法
第一个单词首字母小写,后面每个单词首字母大写。例:userName

5.变量拓展let和var的区别

可以先使用在声明(不合理)
var声明过的变量可以重复声明(不合理)
比如变量提升、全局变量、没有块级作用域等等

6.数组

let arr = []
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号
长度:数组中数据的个数,通过数组的length属性获得

三、常量

1.概念

使用const声明的变量称为“常量”。

2.使用场景

当某个变量永远不会改变的时候,就可以使用const来声明,而不是let。

3.命名规范

和变量一致

4.常量使用:

//声明一个常量
const G = 9.8
/输出这个常量
console.log(G)
注意:常量不允许重新赋值,声明的时候必须赋值(初始化)
小技巧:不需要重新赋值的数据使用const

四、数据类型,js是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认

1.基本数据类型

number数字型,除了0,其余数字都为真
NaN表示一个错误并且是粘性的
string字符串型,除了空字符串,所有字符串都为真
想要输出单引号等可以用转义符''
变量不能加单引号双引号反引号
+可以实现字符串拼接,例如:document.write(‘我今年’+age+’岁了’)
模板字符串:document.write(我今年${age}岁了)自动识别换行
boolean布尔型 let isCool = true
undefined未定义型,没赋值,不确定是什么类型
null空类型

2.引用数据类型object对象

3.检测数据类型

typeof 变量名

五、类型转换

1.隐式转换

规则
+号两边只要有一个是字符串。都会把另外一个转成字符串
除了+以外的算术运算符比如-*/等都会把数据转成数字类型
小技巧
+号作为正号解析可以转换成数字型(+’123’)
任何数据和字符串相加结果都是字符串
常见错误
prompt传过来的为字符串类型,输出两数相加时,要先转换为数字型

2.显示转换

Number(数据)转成数字类型
如果字符串内容里有非数字,转换失败时结果为NaN(Not a Number)即不是一个数字
NaN也是number类型的数据,代表非数字
parselnt(数据)只保留整数
parseFloat(数据)可以保留小数

基础语法02

一、运算符

赋值运算符

=,+=,-=,*=,/=,%=

一元运算符

++,–

结果为7

比较运算符

有隐式转换,(2==’2’)为true
可以比较字符串,从左到右比较,第一位一样再比较第二位
尽量不要比小数,有精度问题
>左边是否大于右边
<左边是否小于右边
>=左边是否大于或等于右边
<=左边是否小于或等于右边
==左右两边值是否相等
!=左右两边是否不相等
===左右两边是否类型和值都相等(开发中常用)
!==左右两边是否不全等

逻辑运算符:&&,||,!

运算符优先级

1小括号()
2一元运算符++
3算数运算符先*/%后+-
4关系运算符>,>=,<,<=
5相等运算符==,!=,===,!==
6逻辑运算符先&&后||
7赋值运算符=
8逗号运算符

二、语句

1.表达式和语句区别

表达式:因为表达式可被求值,所以它可以写在赋值语句的右侧。
num=3+4
语句:而语句不一定有值,所以比如alert()for和break等语句就不能被用于赋值。
alert()弹出对话框console.log()控制台打印输出

2.分支语句

if:单分支、双分支、多分支
三元运算符: 条件?满足条件执行的代码:不满足条件执行的代码

1
2
3
4
5
switch (变量){
case '字符串'或数字:
break
default:
}

3.循环语句

while循环
作用:在满足条件期间,重复执行某些代码
三要素:变量起始值、终止条件(没有终止条件,循环会一直执行,造成死循环)、变量变化量(用自增或者自减)
for循环
for(变量起始值;终止条件;变量变化量){}

循环退出

break:退出整个循环
continue:退出此次循环继续下次循环

4.断点调试

f12打开开发者工具或打开调试页面
进入source
选择代码文件,设置断点,然后记得刷新界面

三、操作数组

1.增

arr.push()将一个或多个元素加到数组末尾,并返回新长度
arr.unshift将一个或多个元素加到数组开头,并返回新长度

2.删

arr.pop删除最后一个元素,返回删除的元素
arr.shift删除第一个元素,返回删除的元素
arr.splice删除指定元素
arr.splice(start,deleteCount)起始位置(从0开始计算),删除几个元素(默认删除到最后)

3.改

4.查

基础语法03

一、函数

1.作用:实现代码复用,提高开发效率

2.定义:function,用于执行特殊任务的代码块

二、函数使用

1.function 函数名(){}

2.函数名命名规范

和变量命名基本一致
尽量小驼峰式命名法
前缀应该为动词
命名建议:常用动词约定

动词

can判断是否可执行某个动作
has判断是否含义某个值
is判断是否为某个值
get获取某个值
set设置某个值
load加载某些数据

3.调用

函数名()

三、函数传参

1.调用语法

function 函数名(传递的参数){}
函数名(参数)

2.形参与实参

形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)
实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
形参可以理解为是在这个函数内声明的变量,实参可以理解为是给这个变量赋值
开发中尽量保持形参与实参个数一致

3.参数默认值

当其中一个变量不给值,默认为undefined
当用户不输入实参,两个变量会出现undefined+undefined,结果为NaN
我们可以改进,给形参加默认值0,使程序更严谨

四、函数返回值

细节

在函数体中使用return关键字能将内部的执行结果交给函数外部使用
return后面代码不会再被执行,会立即结束当前函数,所以return后面的数据不要换行写
return函数可以没有return,这种情况函数默认返回值为undefined
当想返回多个值时,可以使用数组,return [a,b]
两个相同的函数后面的会覆盖前面的函数
实参的个数和形参的个数可以不一致
如果形参过多会自动填上undefined(了解即可)
如果实参过多那么多余的实参会被忽略(函数内部有一个arguments,,里面装着所有的实参)
函数一旦碰到return就不会在往下执行了函数的结束用return

五、作用域

1.定义:

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

2.作用

增强了代码的可用性,减少名字的冲突

3.变量类型

根据作用域不同,变量可分为局部变量(只能在当前函数内部访问和修改)和全局变量(在人和区域都可以访问和修改)

4.变量注意

函数内部的形参可看作局部变量
函数内部没有声明却赋值的变量,可看作全局变量,但不提倡

5.变量访问原则

就近原则,谁近就输出谁

六、匿名函数

1.函数表达式

let fn=function(){}
fn()
此时的变量名为函数名

2.调用位置

具名函数的调用可以写到任何位置,但匿名函数的调用只能在声明后写

3.立即执行函数

(function(){执行代码})();或者(function(){}());必须加分号,例如:(function(x,y){x+y})(1,2);

七、逻辑中断

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

原因

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

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