day13
一、js引入方式
1.内部:通过script标记,在标记内直接编写js代码 2.外部:通过script标记的src属性引入一个js文件,可以引用多个 3.内联:通过标记提供的html属性来执行js代码 空链接
二、js输出方式
1.document.write() 在网页中输出信息,支持标记的解析 2.console.log() 在浏览器控制台里面输出信息 log表示的是日志 3.prompt() 带有输入框的弹窗 => 参数1表示的是输入框外层的提示 => 参数2表示的是输入框内部的提示,和表单的value属性类似 4.alert() 弹窗,会先执行 5.print() 打印(可以调用浏览器的打印的界面)
注意点:输出时,除了纯数字以外都需要加引号;在遇到双层引号时,内层用了单引号那么外层就要双引号,反之亦然;
三、变量
1.变量是一个存储信息的容器,可以把变量理解为一个未知数;可以一次声明多次使用。
2.声明变量:使用var关键字,在关键字后面跟上变量名称,变量名称等于变量的值。
3.声明变量步骤: var 变量名称 -- 变量声明 变量名称 = 变量的值 --- 变量赋值操作
4.变量简写:var 变量名称 = 变量的值
5.关键字和保留字:关键字是具有某种功能的单词或者具有特殊的含义;保留字是指现在还不是系统关键字,但是后面可能会使用到它,那么先把它保留起来。
6.变量详细声明步骤:当浏览器解析到var关键字的时候,首先会在内存空间里面开辟一小块空间;再把这小块空间命名为变量的名称;最后变量的值存储进这个小空间里面
7.注意: ①一次可以声明多个变量。 ②以下结构只有a变量前存在var关键字: var a = b = c = 999 // 拆开:var a = b b = c c = 999 ③两个同名的变量,后面的变量会前面的变量给覆盖掉。但是在ES6(js的语言版本号)的版本中的话,直接不允许你声明两个相同的变量名称。 变量覆盖: var a = 666 var a = 888 变量重新赋值: var myName = '陈俊豪' myName = '张涛' ④声明变量的语言标准要求必须使用var关键字,但是在使用的过程中发现你不加var,也不会报错,这个典型的属于js设计缺陷(bug)
8.变量命名规则: 不能使用数字开头,可以使用字母、下划线、$开头 命名当中不能出现特殊字符,例如:@、!、/、空格、~等等 区分大小写 不能是系统关键字或者保留字
9.变量命名风格(多个单词) 大驼峰,多个单词首字母都是大写 小驼峰,除了第一个单词小写,其他的单词首字母都大写 下划线,多个单词之间使用下划线连接 匈利亚,在变量名称前面标注数据类型
四、数据类型
1.基本(原始、初始)数据类型 number 数值(数字) string 字符串 boolean 布尔 null 空型 undefined 未定义 symbol 独一无二的类型(ES6新增的---了解)
2.引用(复合、复杂)数据类型 array 数组 function 函数 object 对象 set 集合(ES6新增的---了解) map 对象的超级(object的升级,ES6新增的---了解 )
3.typeof() 可以用来检测数据类型
4.为什么null类型是object 这是历史遗留问题 在最开始的设计中,null的类型就是null,由于疏忽结果导致在使用typeof检查数据类型的时候返回的是object 为什么现在不把问题给解决了,是由于现在如果去修改的话,那么影响太大了
5.number数据类型,分为整型(int)和浮点型(float)、 Infinity无限(无穷大)、NaN(not a number)非数字(把其他的数据类型转成数字类型,但是转换不过来呈现不了具体的状态,因此给提示NaN)
6.string字符串类型,使用双引号或者单引号包裹起来的字符
7.boolean布尔类型,true(真)、false(假),表示的是状态,用于判断
8.null空型,表示没有。可以用来清空一个变量的值或者起到一个占位的作用,null返回的类型是object
9.undefined未定义,当一个变量的值声明了,但是没有赋值那么它就是未定义
五、算术运算符
1.算术运算符:+、—、*、/、%、++、--
2.++ 自增:前置,先自身+1,再参与运算。后置,先运算,再自身+1 -- 自减:前置,先自身-1,再参与运算。后置,先运算,再自身-1
3.赋值运算符:=、+=、-=、*=、/=
六、字符串拼接
1.两个字符串相加,做的不是加法运算,而是拼接运算;如果数值类型和字符串类型相加,也是属于字符串拼接运算
2.比较运算符:>、<、>=、<=、==、!=、=== 比较运算符返回的结果都是布尔值 == 比较,会进行隐式数据类型转换(两个类型不一样,会默认转成一样的再去进行比较) === 全等于,比较的时候会先比较数据类型,再比较数据的值。两个都相等才返回true
3.这里会进行隐式数据类型转换 console.log(10 != 11) // true console.log(10 != 10) // false
4.这里不会进行隐式数据类型转换 console.log(10 !== '11') // true console.log(10 !== '10') // true
5.逻辑运算符: ①&&逻辑与(也可以叫并且)。如果左右两个操作符都为true,则结果为true,否则,结果为false。逻辑与,就是两个条件同时满足时,结果为true。 ②||逻辑或。左右两个条件,只要一个满足,就返回true,否则,就返回false。 ③! 取反运算
七、隐式数据类型转化
1.第一种情况: ①字符串加数字,数字就会转成字符串。 ②数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。 ③乘,除,大于,小于跟减的转换也是一样
2.第二种情况: ①undefined等于null ②字符串和数字比较时,字符串转数字 ③数字和布尔比较时,布尔转数字 ④字符串和布尔比较时,两者转数字