- 特殊的值
一、null undefined NaN
- null
- undefined
- NaN (非数字的集合,不会和任何值相等包括自己)
- isNaN () 用来判断是否是NaN !isNaN() 用于判断是数字。中间没有空格!
<script>
// isNaN()用于判断是NaN !isNaN() 用于判断是数字
var x = 123;
console.log( isNaN(x) ); //false
var x = "s12"
console.log( isNaN(x)); //true
</script>
-
NaN === NaN 值是false
-
null == undefined 值是true 特殊规定
-
2 == true 值为false true转为数字1作比较 二、字符串之间的比较
-
当字符串和字符串之间比较时,比较的是Ascll值 且一位一位的比较
console.log( "a" > "A" ) // 值为true "a"的Ascll值为97 "A"的为65
console.log("212" > "2" ) // 值为true 字符串之间的比较为一位一位的作比较
- 当字符串和数字作比较时,字符串转数字进行比较
console.log("12" > 2); //值为true 字符串和数字作比较是字符串转为数字进行比较
Math 对象
一、Math.random()
产生 0 ~ 1 之间的随机数,包含0 但不包含1
<script>
var x = Math.random();
document.write(x);
</script>
产生一个0~100之间的随机数
var x = Math.random()
x *= 100;
document.write(x)
二、Math.ceil(); 向上取整
var x = Math.random()
x = Math.ceil(x);
document.write(x)
可能取到最大值,取到最大值的概率会大一点
三、Math.floor() 向下取整
// 向下取整 floor()
var x = Math.random()
x = Math.floor(x);
document.write(x);
取不到最大值,取到最小值的概率大一点
四、Math.round() 四舍五入取整
// round() 四舍五入取整
var x = Math.random()
x = Math.round(x)
document.write(x)
可能取到最大值
五、计算机的精度丢失
-
精度丢失不是js的问题,而是计算机的问题
-
解决方案: 四舍五入取整,取小数点 或 小数点化为整数 六、随机数的小结
-
产生 0-1之间的随机数
-
产生0-任何值max之间的随机数 x*max
-
产生 min - max 之间的随机数 x*(max - min) + min
-
简写 var a = Math.round( Math.random()* (max - min) + min)
<script>
// 随机一个五位数
var x = Math.random();
x = x * (100000-10000) + 10000;
x = Math.floor(x)
// 取出万位
var wan = Math.floor( x / 10000)
// 取出千位
var qian = Math.floor(x % 10000 / 1000)
// 取出百位
var bai = Math.floor( x % 1000 / 100 )
// 取出十位
var shi = Math.floor( x % 100 / 10 )
// 取出个位
var ge = Math.floor( x % 10 / 1)
document.write(x + '万位' + wan + '千位' + qian + '百位' + bai + '十位' + shi + '个位' + ge )
</script>
七、最大值与最小值
- max()
- min() 八、parseInt()
- 提取到第一个非数字为止的整数,比Math.floor()更加强大一点,不仅取向下的整还可以取出字符串里面的小数
var m = parseInt(".24.5px") //NaN
var m = parseInt("0.2214px1") //0
var m = parseInt("21px1") //24
var m = parseInt("24.5") //24
- 操作输入框
一、认识对象
- 对象是 属性 + 方法(函数)
- 所有的事物都是对象,对象是一种特殊的数据
- 对象拥有属性和方法
- 带括号的叫方法(函数) 二、 先找到这个对象 在文档中找到id元素
<!-- 加运算 -->
<div>
<input type="text" name="" id="inp1">
<span>+</span>
<input type="text" name="" id="inp2">
<button id="but1">=</button>
<input type="text" name="" id="result1">
</div>
<body>
<script>
// 首先找到对象 在文档里面通过id找元素
var oInp1 = document.getElementById("inp1")
var oInp2 = document.getElementById("inp2")
var oBut1 = document.getElementById("but1")
var oResult1 = document.getElementById("result1")
// 绑定点击事件 加
oBut1.onclick = function(){
// 事件内容 即获取inp1 inp2 的值
var x = oInp1.value;
var y = oInp2.value;
// 从页面上获取的所有值都是字符串 所以,在进行数据的加号运算时要先转变数据类型
var sum = Number(x) + Number(y);
// 然后把sum的值赋予result
oResult1.value = sum;
}
</script>
</body>
- 循环的三大流程控制语句
一、种类
- 顺序结构:从上面往下面执行
- 选择结构:判断
- 循环结构:重复的做一件 二、分支语句 单分支语句:有条件的代码执行
// 单分支语句每一条都会执行一遍,不建议写因为执行效率低
var x = 90;
if (x > 60) {
console.log("及格")
}
if (x < 60 ) {
console.log("不及格")
}
双分支语句
// 双分分支语句
var x = 60;
if (x > 60){
console.log("及格")
}
else{
console.log("不及格")
}
多分支语句
// 多分支语句
var x = 60;
if (x > 60){
console.log("及格")
}
else if(x > 20){
console.log("不及格")
}
else if(x >10 ){
console.log("很不及格")
}
else{
console.log("退学吧")
}
if 的嵌套 else必须和if配对