一、小数的问题
-
现象
- 明明只有一位小数,但是最后出来很多位
- 0.1 + 0.7 = 0.799999999999999
- 59.999999999999999 不小于 60
- 诸如此类问题
-
原因
- 计算机最终执行或识别的符号只有0和1,二进制
- 计算机中有一套完善的转换机制,所有内容,不管是文字,字符,任何数据,图片,声音,视频,最终都会被解析成二进制
- 计算机对于小数的计算,会产生误差
-
解决
- 主动保留n为小数,得到数据类型是字符
num = num.toFixed(n);
- 转成数值
num = Number(num);
- 主动保留n为小数,得到数据类型是字符
二、隐式类型转换
- …
三、三目运算符(三元,表达式)
- 语法
条件 ? 条件为真,值1 : 条件为假,值2
- 注意
- 三目其实就是一种简写方式,如果不能简写,那就不用三目
- 三目是个表达式,表达式最终会计算出一个值
- 应用
var n = 16; var m = n>10 ? n.toString() : "0"+n; console.log(m);
- 能用就用,不能用,老老实实的写if-else去
四、逻辑运算符的高级用法
- 所有的隐式类型转换,仅仅发生在该数据被使用时,该数据还是原本的内容
||
- 基础规则
- 或的两边只要出现一个true就是true
- 如果两边都是false,就是false
- 原理
- 如果左侧是true,那么就确定 或 的结果了,不再向右检测
- 如果左侧是false,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了
- 基础规则
&&
- 基础规则
- 与的两边都是true就是true
- 如果两边只要出现一个false就是false
- 原理
- 如果左侧是false,那么就确定 与 的结果了,不再向右检测
- 如果左侧是true,不能确定结果,需要继续向右检测,不管右侧是啥,结果都停在右侧了
- 基础规则
!
- 规则:取反
- 灵活利用非,实现其他转布尔
五、简单介绍,js如何操作页面
<body>
<input type="text" id="txt" value="你好,表单">
<input type="button" value="点我试试" id="btn">
</body>
<script>
// 需求:
// 1.在js中获取输入框的内容,打印到控制台
// 通过js的id选择器,根据名字(id)获取元素。
// document.getElementById("id名")
// var abc = document.getElementById("txt")
// console.log(abc);
// console.log(abc.value);
// 2.通过用户的行为,实时获取输入框的内容
// 监视用户的动作
// 如果用户触发了这个行为
// 我们做一些事情
// var anniu = document.getElementById("btn");
// // 监听了用户的 点击行为,用户只要点了这个按钮,那么就执行指定代码
// anniu.onclick = function(){
// 此处的代码,会在用户发生了这个行为的时候被执行
// console.log("hello")
// }
// 获取按钮
var anniu = document.getElementById("btn");
// 获取输入框
var abc = document.getElementById("txt");
// 监听用户点击行为
// 元素 被点击时 要做什么事
anniu.onclick = function(){
// 当用户点击时,打印输入框的内容
console.log(abc.value);
}
</script>
===============
六、循环结构
-
程序的三大结构
- 顺序:代码自上而下,按顺序执行
- 分支:根据指定的条件,选择不同的过程执行
- 循环:重复
-
循环的意义
- 循环的意义是什么?
- 节省操作,减少代码冗余
- 循环的意义是什么?
-
循环的三要素
- 计数器的创建
- 执行条件(停止条件)的设定
- 计算器的改变
-
循环语句
-
配合指定的语句,这个语句,叫循环语句
-
while
- 语法:
var i = 0; while( i<10 ){ document.write("hello world<br>"); i++; }
-
do while
- 语法:
var i = 0; do{ console.log(i); i++; }while(i < 10){ console.log("循环结束了"); }
-
while和do-while的区别
- do-while语句比while语句多执行一次
-
for
-
-
注意
- 计数器的改变最好放在循环体的最后,除非特殊需要
- 如非特殊需要,千万不能在循环中额外改变计数器
- 循环,最好理解执行过程,不要硬记,因为还有循环的嵌套