探索JavaScript基础:第54天

发表时间: 2023-10-09 15:28

nodejs支持js代码跑在后端服务器上。

版本主要用的还是5.1和6.0版本。

有两种引入方式:

1.script标签内部直接书写js代码

2.script标签src属性引入外部js代码

JavaScript的语法结构

//单行注释/*多行注释*/

js语句以;作为语句的结束,但不写也没关系。

js的变量与常量

js中首次定义一个变量名的时候,需要用关键字声明1、关键字varvar name = 'jason'2、es6推出的新语法letlet name='jason'如果你的编辑器支持的版本是5.1,那么无法使用letconst 用来定义常量

var与let的区别:

1、作用域:使用"var"声明的变量在整个函数范围内都是可访问的(函数作用域),而使用"let"声明的变量则是块级作用域的(块级作用域是指由一对花括号包围的代码块)。

2、变量提升:使用"var"声明的变量会发生变量提升,意味着变量可以在其声明之前被访问。而使用"let"声明的变量不会发生变量提升,只有在变量声明的位置之后才能访问到。

3、重复声明:使用"var"重复声明同一个变量是允许的,而使用"let"重复声明同一个变量则会引发错误。

4、循环中的区别:在使用"var"声明的变量在循环中具有全局作用域,而使用"let"声明的变量在循环中具有块级作用域。这意味着使用"let"声明的变量在每次循环迭代时都会重新创建,避免了一些常见的循环中的问题。

总结起来,"var"适用于函数作用域的变量声明,而"let"适用于块级作用域的变量声明。在现代的JavaScript开发中,推荐使用"let"来声明变量,因为它提供了更好的作用域控制和更明确的变量声明方式。

var

let

变量的命名规范:

1.变量名只能是:数字、字母、下户线和$

2.变量名命名规范:js中推荐使用驼峰式命名。如:userName

3.不能用关键字命名

js代码的书写位置

1.可以单独开设js文件书写

2.可以在浏览器的console界面书写,在浏览器书写js的时候,左上方的清空按钮只是清空内容,代码其实还在。如果想重新来,最好重新开设一个页面(在使用浏览器写js代码的话最好是在自己的html界面书写)

js的数据类型:

JavaScript是一种动态类型语言。动态类型语言是指在运行时确定变量类型的语言。相对于静态类型语言(如Java、C++),在JavaScript中,变量的类型是在运行时根据赋值的值来确定的,而不是在编译时确定的。

数值类型(number):

var a = 11var b = 11.11typeof a //查看数据类型js中浮点数和整数都是number类型特殊的数值类型:NaN也是一种number,但他表示的意思是“不是一个数值”not a numberparseInt('') //转为整形parseFloat('') //转为浮点数当浮点数转为整形时,会自动去除后面的小数点。

字符类型(string):

var name = 'name' 	//字符串var str = `	//模板字符串asdasdasdasd`// 模版字符串除了可以定义多行文本之外还可以实现格式化字符串操作// 书写${}会自动去前面找大括号里面的变量名对应的值,如果没有定义直接报错var sss=`my name is ${name}`	//类似于python里的占位符// 字符串的拼接// 在python中不推荐你使用+做拼接 join// 在js中推荐你直接使用+做拼接name + age

字符串的内置方法:

布尔值(boolean)

1.在python中布尔值是首字母大写的

True

False

2.但是在js中布尔值是全小写的

true

false

# 布尔值是false的有哪些

空字符串、0、null、undefined、NaN

null与undefined

nul1

表示值为空一般都是指定或者清空一个变量时使用

name =‘jason’

name = null

undefined

表示声明了一个变量,但是没有做初始化操作(没有给值)。

函数没有指定返回值的时候,返回的也是undefined

对象(object):

数组

在js中数组用[]表示。(和python里的列表一样,但不支持负数索引。)

内置方法:

基本函数

forEach函数

splice函数

map函数,效果和forEach差不多

自定义对象:

在js中自定义对象用{}表示,类似于python中的字典。

第二种创建自定义对象的方式

date对象

用于创建时间对象

json对象

json对象

RegExp正则

re对象

全局匹配需要注意的地方(1)

在第一次全局匹配后,指针会落到字符串的末尾处。然后下一次匹配开始时,会直接从末尾处开始匹配,匹配不到内容,则会输出false,然后再将指针移动到开头。

lastindex属性验证

全局匹配需要注意的地方(2)

如果被匹配的对象里面什么也没有,那么会自动传一个undefined。

运算符

自增

比较运算符(大于等于也是一样操作的)

逻辑运算符

流程控制语句

if判断

switch语法

switch语法

for循环

while循环、三元运算符

函数

有参函数,参数传多了或传少了都不会报错

可以使用arguments关键字来控制传参

函数的返回值

匿名函数

箭头函数

作用域(查找变量的优先级顺序)

作用域(查找变量的优先级顺序)

math对象(了解)