javascript 学习第一天

1. 编程语言
1.1 编程
- 编程定义:让计算机解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程
- 计算机程序:计算机所执行的一系列指令集合
- 计算机语言:人与计算机之间通讯的语言
2. javascript初识
2.1 历史
- 创始人:布兰登·艾奇(Brendan Eich,1961年~)
- 10天完成javascript设计
- 最初命名LiveScrpt,后来javaScript
2.2 javascript是什么
- 运行在客户端的脚步语言,流行的高级语言
- 脚本语言:不需要编译,允许过程中由js解释器(js引擎)进行解释执行
- 现在可以基于Node.js技术进行服务端编程
2.3 javascript作用(行为)
- (表单动态校验(密码强度检测)(js产生的最初目的)
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(ruff)
- 游戏开发(cocos2d-js)
2.4 浏览器解析js

2.5 js的组成

1. ECMAScript
####2. DOM
####3. BOM
- 浏览器对象模型
- 它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构,通过BOM可以操作浏览器窗口,比如(弹出框,控制浏览器跳转,获取分辨率)
2.6 javascript初体验
1. 行内式
2. 内嵌式
3. 外部js文件
示例
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| |
| |
| |
| |
| |
| |
| <script src="./01.666.js"> |
| |
| </script> |
| |
| </head> |
| <body> |
| |
| |
| </body> |
| </html> |


2.7 js注释
- 单行注释:ctrl+/
- 多行注释:默认快捷键:alt+shift+a
示例
修改快捷键(vscode中)
2.8 JavaScript 输入输出语句
方法 | 说明 | 归属 |
---|
alert(msg) | 浏览器弹出警示框 | 浏览器 |
console.log(msg) | 浏览器控制台打印输出信息 | 浏览器 |
prompt(info) | 浏览器弹出输入框,用户可以输入 | 浏览器 |
示例
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| prompt('请输入'); |
| |
| alert('计算的结果'); |
| |
| console.log('控制台输出'); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

3. 变量
- 本质:变量是程序在内存中申请的一块用于存放数据的空间
1. 变量的使用
| <script> |
| |
| var age; |
| |
| age=18; |
| </script> |
1.1 变量初始化
| <script> |
| |
| var age=18; |
| </script> |
案例
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| var name; |
| var age; |
| var address; |
| var pay; |
| name=prompt('请输入姓名'); |
| age=prompt('请输入年龄'); |
| address=prompt('请输入地址'); |
| pay=prompt('请输入工资'); |
| |
| alert('姓名:'+name +',年龄'+age+',地址'+address+'工资'+pay); |
| console.log('姓名:'+name +',年龄:'+age+',地址:'+address+',工资:'+pay); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

2. 变量语法扩展
2.1 同时声明多个变量
| <script> |
| var age=19,name='666',address=900; |
| console.log(age); |
| console.log(name); |
| console.log(address); |
| </script> |

2.2 声明变量特殊情况
情况 | 说明 | 结果 |
---|
var age;console.log(age); | 只声明,不赋值 | undefined |
console.log(age); | 不声明,不赋值 | 报错 |
age=10;console.log(age); | 不声明,只赋值 | 10(全局变量) |
示例
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| var age; |
| console.log(age); |
| |
| console.log(wer); |
| |
| tel='11111'; |
| console.log(tel) |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |


2.3 变量命名规范
- 由字母,数字,下划线,美元符号组成
- 区分大小写
- 不能以数字开头
- 不能是关键字,保留字
- 变量名要有意义
- 遵循驼峰命名法,首字母小写,后面单词的首字母需要大写
- 推荐翻译网站:有道,爱词霸
4. 数据类型
4.1 变量的数据类型
-
javascript是一种弱类型或者说动态语言,不用提前声明变量的类型,类型会被自动确定
-
确定方式:根据变量等号右边所赋予的值的数据类型确定
-
相同的变量可以作不同的类型
| <script> |
| |
| var x=10; |
| var x='999'; |
| |
| console.log(x); |
| </script> |
4.2 数据类型的分类
- 简单数据类型(Number,String,Boolean,Undefined,Null)
- 复杂数据类型
4.2.1 简单数据类型
简单数据类型 | 说明 | 默认值 |
---|
Number | 数字型,包含整形和浮点型 | 0 |
Boolean | 布尔值类型,true,false | false |
String | 字符串类型,“张三” | “” |
Undefined | var a;声明了变量但没有赋值,a=undefined | undefined |
Null | var a=Null;声明了变量a为空值 | null |
1.1. 数字型范围
最值 | 值 |
---|
最大值:Number.MAX_VALUE | 1.7976931348623157e+308 |
最小值:Number.MIN_VALUE | 5e-324 |
、
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| console.log(Number.MAX_VALUE); |
| console.log(Number.MIN_VALUE); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

1.2. 数字型的三个特殊值
特殊值 | 含义 |
---|
Infinity | 无穷大 |
-Infinity | 无穷小 |
NaN | 代表一个非数值(not a number) |
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| console.log(Number.MAX_VALUE*2); |
| |
| console.log(-Number.MAX_VALUE*2); |
| |
| console.log('牛逼'-100); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

1.3. isNaN方法
- 判断一个变量是否为非数字的类型,是返回true,不是返回false
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| var result=isNaN(100); |
| console.log(result); |
| result=isNaN('pink'); |
| console.log(result); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

2.1字符串类型
2.2 字符串引号嵌套
- js可以用单引号嵌套双引号,也可以双引号嵌套单引号(外双内单,外单内双)
2.3 字符串转义符
转义符 | 解释说明 |
---|
\n | 换行,newline |
\ \ | 斜杠\ |
\ ’ | 单引号 |
\ " | 双引号 |
\ t | tab缩进,制表符 |
\ b | 空格,blank |
2.4 字符串长度
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| var str='my name is bob'; |
| |
| console.log(str.length); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

2.5 字符串的拼接
- 多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
- 拼接前会把与字符串相加的任何类型转换成字符串,再拼接成新的字符串
3.1 布尔型 Boolean
- 布尔型有两个值:true和false,true表示真,false表示假
- 布尔型与数字相加时,true的值为1,false的值为0
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| console.log(true+1); |
| console.log(false+1); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

4.1 Underfined类型
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| var x; |
| |
| console.log(x+1); |
| |
| console.log(x+'你好'); |
| |
| console.log(x+true); |
| |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

5.1 Null型
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| var x=null; |
| |
| console.log(x+1); |
| |
| console.log(x+'你好'); |
| |
| console.log(x+true); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

4.3 获取数据类型
4.3.1 获取检测变量的数据类型
-
typeof可以用来获取检测变量的数据类型
-
不同数据类型的返回值
类型 | 例子 | 结果 |
---|
String | typeof “你好” | “string” |
Number | typeof 18 | “number” |
Boolean | typeof true | “boolean” |
Undefined | typeof underfined | “undefined” |
Null | typeof null | “object” |
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| var x=18; |
| console.log(typeof x); |
| x='str'; |
| console.log(typeof x); |
| x=true; |
| console.log(typeof x); |
| x=undefined; |
| console.log(typeof x); |
| x=null; |
| console.log(typeof x); |
| |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

- prompt获取用户输入的值为字符串型(string)
4.4 字面量
- 字面量在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值
- 数字字面量:8,9,10
- 字符串字面量:‘你好’
- 布尔字面量:true,false
5. 数据类型转换
5.1 转换为字符串
方式 | 说明 | 案例 |
---|
toString | 转换成字符串 | var num=1;alert(num.toString) |
String()强制转换 | 转成字符串 | var num=1;alert(String(num)); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num=1;alert(num+“我是字符串”) |
- toString和String()使用方式不一样
- 三种转换方式,我们推荐使用第三种,这一方式称为隐式转换
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| var num=1; |
| |
| console.log(num.toString()); |
| |
| console.log(String(num)); |
| |
| console.log(num+''); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

5.2 转换成数字型
方式 | 说明 | 案例 |
---|
parseInt(String)函数 | 将string类型转换成整数数值型 | parseInt(‘78’) |
parseFloat(String) | 将string类型转换成浮点数数值型 | parseFloat(3.14) |
Number()强制转换函数 | 将string类型转换成数值型 | Number(‘12’) |
js隐式转换(- * /) | 利用算数运算转换成数值型 | ‘12’-0 |
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| </head> |
| <body> |
| <script> |
| var num=prompt('请输入数据') |
| |
| num=parseInt(num); |
| console.log(num); |
| var num=3.14; |
| |
| num=parseInt(num); |
| console.log(num); |
| num=3.94; |
| |
| num=parseInt(num); |
| console.log(num); |
| |
| num=parseInt('120px') |
| console.log(num); |
| |
| num=parseInt('rem120px'); |
| console.log(num); |
| |
| |
| |
| num=parseFloat('3.14'); |
| console.log(num); |
| |
| |
| num=parseFloat('129.8px'); |
| console.log(num); |
| |
| |
| |
| num=parseFloat('rem120px'); |
| console.log(num); |
| |
| num=Number('1222'); |
| console.log(num); |
| |
| |
| num=2019-'2018'; |
| console.log(num); |
| </script> |
| </body> |
| </html> |


5.3 转换为布尔型
方式 | 说明 | 案例 |
---|
Boolean()函数 | 其他类型转成布尔值 | Boolean(‘true’) |
- 代表空、否定的值会被转换成false,如 ",0,NaN,null,undefined
- 其余的值会被转换为true
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Document</title> |
| <script> |
| |
| console.log(Boolean('')); |
| console.log(Boolean(0)); |
| console.log(Boolean('pink'-10)); |
| console.log(Boolean(null)); |
| console.log(Boolean(undefined)); |
| </script> |
| </head> |
| <body> |
| |
| </body> |
| </html> |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!