一、JavaScript 介绍
1、前言
- 一个完整的网页由三门语言组成,缺一不可
- HTML:确定网页的结构
- CSS:确定网页的样式
- JavaScript:确定网页的行为(交互)
2、什么是 JavaScript
- 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。
3、JavaScript 的作用
- 网页特效(监听用户的一些行为让网页做出对应的反馈)
- 表单验证(针对表单数据的合法性进行判断)
- 数据交互(获取后台的数据,渲染到前端)
- 服务端编程(node.js)
4、JavaScript 的组成
1. ECMAScript
- 规定了 JS 的基础语法核心知识。
- 比如:变量、分支语句、循环语句、对象等。
2. Web APls
- DOM 操作文档,比如对页面元素进行移动、大小添加删除等操作。
- BOM 操作浏览器,比如页面弹窗,检测窗口宽度、存储数据到浏览器等。
5、JavaScript 书写位置
1. 行内样式
-
代码写在标签内部
2.内联
- 直接写在 HTML 文件里面,用 script 标签包住,script 标签写在 body 标签上面
- 注意事项:
- 我们将 script 标签放在HTML文件的底部附近的原因是浏览器会按照代码在文件中的顺序加载 HTML。如果先加载的 JavaScript 期望修改其下方的 HTML,那么它可能由于 HTML 尚未被加载而失效。因此,将 JavaScript 代码放在 HTML页面的底部附近通常是最好的策略
3.外联
- 代码写在以 .js 结尾的文件里,然后通过 script 标签引入到 html 页面中。
- 注意事项:
- script 标签中间无需写代码,否则会被忽略!
- 外部 JavaScript 会使代码更加有序,更易于复用,且没有了脚本的混合,html 也会更加易读,因此这是个好的习惯。
6、注释
1.单行注释
- 符号://
- 作用://右边这一行的代码会被忽略
- 快捷键:ctrl + /
2.块注释
- 符号:/* */
- 作用:在 /* 和 */ 之间的所有内容都会被忽略
- 快捷键:shift + alt + A
7、了解JavaScript结束符
1.结束符
- 代表语句结束
- 英文分号 “ ; ”
- 可写可不写(现在不写结束符的程序员越来越多)
- 换行符(回车)会被识别成结束符 ,所以一个完整的语句,不要手动换行
- 因此在实际开发中有许多人主张书写 JavaScript 代码时省略结束符
- 但为了风格统一,要写结束符就每句都写,要么每句都不写(按照团队要求.)
8、JavaScript 输入输出语法
1.什么是输入输出:
- 输出和输入也可理解为人和计算机的交互,用户通过键盘、鼠标等向计算机输入信息,计算机处理后再展示结果给用户,这便是一次输入和输出的过程。
2. 输出语法:
- 向 body 内输出内容。
- 如果输出的内容写的是标签,也会被解析成网页元素。
- 页面弹出警告对话框。
- 控制台输出语法,程序员调试使用。
3.输入语法:
- 显示一个对话框,对话框中包含一条文字信息,用来提示用户输入文字。
- 显示一个确认框,用户可以点击 确认 与 取消
二、变量
1、什么是变量
-
变量是计算机中用来存储数据的容器(装东西的盒子),它可以让计算机变得有记忆。
-
注意:变量不是数据本身,它们仅仅是一个用于存储数值的容器。可以理解为是一个个用来装东西的纸箱子。
2、变量的原理
- 内存中一块存储数据的空间
3、变量的基本使用
1.声明变量
-
要想使用变量,首先需要创建变量(专业说法: 声明变量)
-
语法
-
声明变量有两部分构成:声明关键字、变量名(标识)
-
let 即关键字 (let: 允许、许可、让、要),所谓关键字是程序发明者预先定义的有特殊含义的字符(给编译器发指令)
-
-
举例
- age 即变量的名称,也叫标识符
2.变量赋值
-
定义了一个变量后,你就能够初始化它(赋值)。在变量名之后跟上一个“=”,然后是数值。
-
注意:是通过变量名来获得变量里面的数据
3.变量的注意事项
- 变量名不可允许重复声明
- 变量重复赋值:先销毁旧值,然后存入新值
- 变量之间赋值:取出变量的数据拷贝一份,然后复制
- 如果仅声明了变量,但并没有赋值,此时变量的值是 undefined 未定义
4.变量命名规划与规范
-
规则(必须遵守,不遵守报错)
- 不能用关键字(关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等)
- 只能用下划线、字母、数字、$组成,且数字不能开头
- 字母严格区分大小写,如 Age 和 age 是不同的变量
-
规范(建议,不遵守不会报错,但不符合业内通识)
- 起名要有意义
- 遵守小驼峰命名法(第一个单词首字母小写,后面每个单词首字母大写。例:userName)
三、数据类型
1、数据类型整体分为两大类:
-
基本数据类型
- number 数字类型
- string 字符串类型
- boolean 布尔类型
- undefined 未定义类型
- null 空类型
-
引用数据类型
- object 对象
- function 函数
- array 数组
1. number 数字型
-
什么是数字类型:
- 即我们数学中学习到的数字,可以是整数、小数、正数、负数;在JavaScript 中的正数、负数、小数点等 统一称为 数字类型。
-
注意事项
- JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认
- Java是强数据类型 例如 int a = 3 必须是整数
- 在控制台查看时显示为蓝色
2. string 字符串类型
-
什么是字符串类型:
- 通过单引号( '' ) 、双引号( "" )或反引号( `` )包裹的数据都叫字符串,单引号和双引号没有本质上的区别,推荐使用单引号。
-
反引号定义的字符串也称之模板字符串
- 可以换行定义字符串
- 可以解析变量的值 但必须用${变量名}
-
注意事项
- 无论单引号或是双引号必须成对使用
- 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)
- 必要时可以使用转义符 \,输出单引号或双引号
- 在控制台查看时显示为灰色
-
字符串的拼接
- 作用:拼接字符串和变量
- 符号:在反引号包含的内容中需要拼接变量时,要用 ${} 包住变量
3. boolean 布尔类型
- 布尔值:有两个固定的值
- true,表示肯定的数据用 true(真),
- false,表示否定的数据用 false(假)。
- 使用场景:表示肯定或否定时在计算机中对应的是布尔类型数据。
- 注意事项:
- 在控制台查看时显示为蓝色
4. undefined 未定义类型
- 未定义是比较特殊的类型,只有一个值 undefined。
- 什么情况下会出现未定义类型:只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少直接为某个变量赋值为 undefined。
- 工作中使用场景:通过检测变量是不是 undefined ,就可以判断数据是否有传递。
- 注意事项:
- 在控制台查看时显示为灰色
5. null 空类型
- null 表示值为空
- null 和 undefined 区别:
- undefined 表示没有赋值
- null 表示赋值了,但是内容为空
- 使用场景:可以先给变量里存放的对象 null,前提是这个对象没有创建好
6、检测数据类型
- 可以通过 typeof 关键字检测数据类型
2、查看数据类型
1. 语法: typeof()
1. typeof() 查看数据类型
console.log(typeof()); // 在控制台输出类型
2. 查看数据类型:typeof(),为获取数据类型,不具备输出功能
console.log(typeof(10)); // number
console.log(typeof('hello')); // string
console.log(typeof(true)); // boolean
console.log(typeof(null)); // object对象
3. 对于prompt()来说,点击确认 计算机接收到的是string类型,反之null类型
console.log(typeof(prompt('请输入数据')));
4. 对于confirm()来说,就是boolean类型
console.log(typeof(confirm('请选择')));
3、数据类型转换
- 说明:
- 把一种数据类型的变量转换成我们需要的数据类型。
- 只要相同的数据才可以直接进行运算,如果数据类型不相同,会发生数据类型的转换。
1.隐式转换
-
概念:某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
-
规则
- + 号两边只要有一个是字符串,都会把另外一个转成字符串
- 除了 + 以外的算术运算符 比如 - * / 等都会把数据转成数字类型
-
缺点
- 转换类型不明确,靠经验才能总结
-
小技巧
- +号作为正号解析可以转换成Number
-
注意:
- +,+= 会优先进行字符串的拼接,所以在使用时要注意。
2.显示转换
-
概念:自己写代码告诉系统该转成什么类型
-
转换为数值型
-
Number(数据)
1.1 转成数字类型 1.2 如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字 1.3 NaN也是number类型的数据,代表非数字 -
parseInt(数据)
2.1 只保留整数 2.2 在一个字符串中,从左向右依次提取整数,直到遇到第一个非数字就停止提取(前提是第一位是数字) -
parseFloat(数据)
3.1 可以保留小数 3.2 在一个字符串中,从左向右依次提取小数,直到遇到第一个非数字就停止提取(前提是第一位是数字) -
+prompt('请输入'),最前面的 + 表示正整数数值。
-
-
转换为字符型
- String(数据)
- 变量.toString()
-
转换为布尔型
- Boolean(数据)
- 注意事项:
2.1 由于布尔类型只有两个值,因此任何数据转换成布尔类型,只能得到true或false 2.2 得到false,有且只有八种数据: 0 -0 NaN undefined null false ‘’(空字符串) do cument.all (这里需要重点记忆的是: undefined null 0 NaN) 2.3得到true: 除false八种之外一切数据都可以返回true