对象理解:
对象 = 属性 + 方法
innerHTML:读写(获取和设置)元素对象内部的内容,包含标签
对象名.onclick = function() { //点击后执行后面的花括号里面的代码。
对象名.innerHTML = 事件;
}
变量的类型:
typeof():检测数据的类型,使用时typeof后面的括号可以省略
一、变量的数据类型(6种)
1、基本类型(5种)
number数字 string字符串 boolean布尔值 null空对象 undefined未初始化
1.1.number数字类型,任何情况下直接赋值。
1.2.string字符串:字符串必须添加引号(单双引号都可以,但是注意单双引号的嵌套关系)
1.3.boolean布尔值:布尔值只有两个true和false分别表示真和假。
1.4.特殊类型:null和undefined
2.复杂类型(引用类型)(1种)
引用类型 - object(对象)
总结:
1.typeof检测的是值的类型
2.区分undefined为值和为类型的区别。
3.typeof无法输出null类型,null的类型是object
4.js的两种特殊的数据类型是:null和undefined
赋值、数学、关系运算符
一、赋值运算符: =
复合赋值运算符: += -= *= /= %=
二、数学运算符: " + - * / % "
1. 加号+ : 加法运算 字符串的拼接。
如果+号两边有任意一边是字符串,+号就是拼接
如果字符串数字通过在前面添加一个+号,将这个字符串数字转换成真正的数字
2. %:取余,求模 - 求余数
3. - * /
三.关系运算符
1.> >= < <=
2. == === != !==
==:比较的是值是否相等,和类型无关,具有隐式转换(符号自动实现),最终转换的结果一定是数字
null和undefined相等的,系统约定的
3. !=:值不相等
4. ===:全等或者恒等,比较的是值和类型都要相等
5. !==:不全等或者不恒等
面试:== 和 ===的区别
==比较的是值是否相等,和类型无关. ===全等或者恒等,比较的是值和类型都要相等
==具有隐式转换,===没有
显式转换:强制转换,通过系统的函数(方法)进行转换
一、系统下面提供了三个函数(方法)进行强制转换 - Number / String / Boolean。
1、Number():括号里面的值转换成数字,包括字符串数字,如果不能转换输出NaN
2、String():括号里面的值强制转换成字符串
3、Boolean():将括号里面的值强制转换成布尔值
规律:数字非0即真 字符串非空即真 undefined null都是假(false)
二、window下面提供两个方法 - parseInt() parseFloat()转换
1、parseInt():将括号里面的字符串转换成整数,从第一个字符为数字开始,碰到非数字结束。如果第一个字符都不是数字,输出NaN
parseInt括号里面可以放置两个值,第一个值:字符串 第二个值:进制值(二进制,八进制,十进制,十六进制)
2、parseFloat():和parseInt类似,不过可以获取字符串存在的小数,没有第二个值
3、其他方法
toFixed():数字下面的方法,保留对应的小数位数,参数就是保留的小数位数
采用银行家算法。
【银行家算法】是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死锁产生的算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。
isNaN():检测括号里面的值是否是一个数字,不是一个数字输出true
隐式转换:系统自动根据当前的符号进行转换。+ - * / % == ++ -- ! ......
逻辑运算符:&&与 ||或 !非
一、逻辑与(&&)
1.逻辑与(&&)操作可以应用于任何类型的操作数,而不仅仅是布尔值。
2.在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值。
3.逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。
过程1:如果第一个操作数为真,继续后续的操作数,结果就是第一个不为真的值,或者最后一个为真的值。
过程2:如果第一个操作数为假,结果就是第一个操作数的值,包括第二个操作数在内的直接跳过。(短路操作:不执行后续操作)
二、逻辑或(||)
逻辑或(||)和逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或结果也不一定返回布尔值
逻辑或操作符也是短路操作符。也就是说,如果第一个操作数的求值结果为true ,就不会对第二个操作数求值了。
过程1:如果第一个操作数为真,结果就是第一个操作数的值,后续跳过(短路)
过程2:如果第一个操作数为假,后续操作如果是真,返回当前值,如果是假继续执行,输出最后的结果。
总结:逻辑与不要碰到假,逻辑或不要碰到真
三、逻辑非(!)
结果一定是布尔值,取反
一元运算符
只能操作一个值的操作符叫做一元操作符,是ECMAscript中最简单的操作符
1、前置型应该位于操作的变量之前,先将操作数+1或者-1,再参与运算
2、后置运算符应该位于要操作的变量之后,先参与运算后,自身再+1或者-1
其他内容
1、计算小数
小数相加出现误差
解决方式:扩大值方式
2、比较问题(数字、字符串、中文)
Unicode编码:全世界的每一个符号都对应一个数字
localeCompare(目标字符串)字符串的方法,本地字符串的方式进行比较
0 相等的情况
1 当前的字符串>目标字符串
-1 当前的字符串<目标字符串