1、如何创建一个number数值型的变量
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
// 创建一个16进制的数值
var num3 = 0xFF;
</script>
2、不管是多少进制,整形,浮点型,十进制,还是十六进制,判断类型的结果都是一样的,结果都是number类型的
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
console.log(typeof(num2));
// 创建一个16进制的数值
var num3 = 0xFF;
console.log(typeof(num3));
</script>
3、具体要判断类型的时候,他又是字符串的
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
console.log(typeof(num2));
// 创建一个16进制的数值
var num3 = 0xFF;
var type1 = typeof(num3)
if (type1 === 'number') {
console.log('进来啦!!!');
}
</script>
4、如何拿到真是的[object Number]类型呢?
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
console.log(typeof(num2));
// 创建一个16进制的数值
var num3 = 0xFF;
var type1 = typeof(num3)
console.log(Object.prototype.toString.call(num3));
</script>
5、还有什么办法判断是不是数值?
通过isNaN()函数,如果不是数值型,就返回false
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
console.log(typeof(num2));
// 创建一个16进制的数值
var num3 = 0xFF;
var type1 = typeof(num3)
console.log(isNaN(num3));
</script>
6、instanceof咋用
number是一个基本类型,会被存储在栈内存里,用instanceof是监测不出来的,他更善于监测堆内存那边的东西
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
console.log(typeof(num2));
// 创建一个16进制的数值
var num3 = 0xFF;
var num4 = new Number(100)
// false
console.log('-----', num3 instanceof Number)
// true
console.log('=====', num4 instanceof Number)
</script>
7、有时候你发现服务端给你返回的id失真了?
数值型的极限长度是17位,超过17位就会失真
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
// 创建一个16进制的数值
var num3 = 0xFF;
var num4 = new Number(100)
// 失准或者失去精度或者不精确
var num5 = 8888888888888888; // 16位
var num6 = 88888888888888885; // 17位
console.log('-------------', num5);
console.log('=============', num6);
</script>
8、判断是否等于 == 和 ===
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
// 创建一个16进制的数值
var num3 = 0xFF;
var num4 = new Number(100)
var string1 = '5';
console.log(num == string1); // true
console.log(num === string1); // false
</script>
10、隐式转换
<script>
// 创建一个10进制number数值
var num = 5;
var num2 = 5.55;
// 创建一个16进制的数值
var num3 = 0xFF;
var num4 = new Number(100)
var string1 = '5';
console.log(num + num2); // 10.55
console.log(num + string1); // 55
console.log(num + true); // 6
console.log(num + false); // 5
console.log(num + Object); // 5function Object() { [native code] }
console.log(num + Boolean); // 5function Boolean() { [native code] }
console.log(num + []); // 5
console.log(num + {}); // 5[object Object]
console.log(-num); // -5
console.log(--num); // 4
console.log(num++); // 4
// Uncaught ReferenceError: undefied is not defined
console.log(num + undefied);
console.log(num + null); // 5
</script>
11、保留2位小数咋做的?
<script>
var num1 = 99.234234;
var num2 = 3;
console.log(num1.toFixed(2)); // 99.23
console.log(num2.toFixed(2)); // 3.00
</script>
12、setTimeout定时返回数字
你以为返回Function吗?你可以在自己的vue组件中试着多走几次看看是个啥?
<script>
var num = 1;
var myTimeout = null;
function timeoutFn() {
myTimeout = setTimeout(() => {
if (num > 10) {
window.clearTimeout(myTimeout);
} else {
console.log('----', myTimeout);
timeoutFn();
num++;
}
}, 10)
}
timeoutFn();
</script>