js简介
运行在客户端的编程语言,实现人机交互效果
作用:
- 网页特效(监听用户的一些行为让网页作出对应的反馈)
- 表单验证(针对表单数据的合法性进行判断)
- 数据交互(湖区后台数据、渲染到前端)
- 服务端编程
组成:
JavaScript分为ECMAScript、WebAPIs(DOM+BOM)
ECMAScript规定js基础语法核心知识
WebAPIs(DOM+BOM):
DOM:操作文档,比如对页面元素进行移动、大小、添加删除等操作
BOM:操作浏览器,比如页面弹窗、检测窗口宽度
书写方式 - 内部JavaScript:直接写在html文件里,用script包裹,写在
</body>
上面 - 外部JavaScript:代码写在以.js结尾的文件里,通过script标签,引入到html页面中。也是写在
</body>
上面 - 内联JavaScript:写在标签内部,vue会用到
输入输出语句:
document.write('我是div标签')
document.write('<h1>我是h1标签</h1>') //也可以写标签,是向body内输出内容
alert('警告')
concole.log('控制台打印') //控制台输出语法,程序员调试使用,页面里是看不到的
//输入语句
prompt('请输入你的年龄:')
alert、prompt会跳过页面渲染先被执行
变量
用于存储数据的容器。
- 声明变量:
语法:let 变量名 - 变量赋值,初始化
语法:age = 18
<script>
let age = 18
document.write(age)
</script>
- 更新变量
重新赋值即可。
<script>
let age = 18
age = 19 //不允许多次声明同一个变量,不能写let age=19
</script>
- 声明多个变量
使用逗号隔开即可。
<script>
let age = 18,num = '张三' //但是不推荐这样写
document.write(age,num)
</script>
- 变量的本质
程序在内存中申请的一块用来存放数据的空间 - 变量命名规则与规范
不能使用关键字:let、if、var
只能用下划线、字母、数字、$组成,且数字不可开头
严格区分大小写
起名要有意义
遵循小驼峰命名法:第一个单词首字母小写,后面每个单词首字母大写,如:userName - 数组
将一组数据存储在单个变量名下,语法 let arr = [数据1, 数据2, 数据3, …, 数据n]
,其中的数据索引从0开始,即数据1=arr[0],当数据是中文时,要加单引号
数组长度:arr.length
常量
const声明,不会改变。常量不允许重新赋值,声明的时候必须赋值(初始化)
数据类型
基本数据类型
- number数字型
可以是整数、小数、正数、负数。
运算:+、-、*、/(求商)、%(取余),乘法、除法、取余优先级>加法、减法,和数学运算是一样的
NaN:not a number代表一个计算错误,任何对NaN的操作都会得到NaN,即都是错误的,甚至NaN都不等于NaN,因为只要有NaN参与了运算就一定会是错误的
- string字符串型
可以使用双引号、单引号、反引号(``)包裹,双引号和单引号中推荐使用单引号。
转义符:\ ,输出单引号或双引号
字符串拼接:使用+运算符,实现字符串的拼接,只要有一个是字符串就可以进行拼接
模板字符串:用于拼接字符串和变量
语法:使用反引号
let age = 18
document.write(`我今年${age}岁了`) //外部用反引号包含
-
boolean布尔型
他只有两个固定的值:true和false,非真即假 -
undefined未定义型
声明了一个变量但是未赋值。undefined+1的结果是NaN -
null空类型
为某变量赋值为null,但是内容为空。null+1的结果是1
如果一个变量里面确定存放的是对象,但是对象还没准备好,就先赋值一个null -
数据类型的检测
通过typeof关键字检测数据类型:typeof x 或 typeof (x)
引用数据类型
object对象
数据类型的转换
使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法操作,所以要转换成我们需要的数据类型
隐式转换
有些运算符被执行时,系统内部自动将数据类型进行转换,成为隐式转换。
如:+号两边只要有一个是字符串,就会自动把另一个也转换成字符串。还可以将字符串转换成数字型:
document.write(+`123`) //此时123就不是字符串类型的了,变成数字型的
显式转换
Number(数据):转换成数字型,NaN也是number类型的数据,代表非数字
<script>
let age = prompt('请输入年龄:') //prompt默认输入的是字符型
let age1 = Number(age) //强制将string类型转换成数字型
console.log(typeof age, typeof age1)
</script>
parseInt(数据):只保留整数,12px就会取成12,只取数字部分,但是abc12pv,这样不能取数字,因为不是以数字开头
parseFloat(数据):可以保留小数