关于JS那些容易被你忽略的那些点(2)

demo six - NaN和isNaN方法

这个就不是坑了,这只是一个知识点
NaN(not a number)是javaScript中的一种特殊数值,类型是number,可以通过isNaN来判断一个词是否是NaN
console.log(isNaN(NaN)); //true
console.log(isNaN(23)); //false
console.log(isNaN('ds')); //true
console.log(isNaN('32131sdasd')); //true
console.log(NaN === NaN); //false
console.log(NaN === undefined); //false
console.log(undefined === undefined); //true
console.log(typeof NaN); //number
console.log(Object.prototype.toString.call(NaN)); //[object Number]


demo seven - 浮点数加减

来,咱们做一个简单的加法
console.log(0.1 + 0.2);   
console.log(0.1 + 0.2 == 0.3);  

结果分别是什么呢?
是不是0.3和true呢?
当然不是。。。。


是不是很意外。
这是因为在JavaScript 中的 number 类型就是浮点型,JavaScript 中的浮点数采用IEEE-754 格式的规定,这是一种二进制表示法,可以精确地表示分数,比如1/2,1/8,1/1024,每个浮点数占64位。但是,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字,会有舍入误差。
可以用toFixed()方法来指定输出的结果的位数

console.log((0.1 + 0.2).toFixed(1));   //0.3
console.log((0.1 + 0.2).toFixed(1) == 0.3);  //true

demo eight - 判断数值是否为整型

如何判断一个number是否为整数 
JS中有一个将数值转换成整型的方法:parseInt( )方法
可以利用这个方法来将其转换成整形再进行比较
function demo(x){
	var y = parseInt(x , 10);
	if (y === x) {
		return true;
	}else{
		return false;
	}
}

demo(30.2);  //false
demo(30);	//true

demo nine - 判断一个字符串是否为回文字符串

什么是回文字符呢?回文字符就是从左往右和从右往左完全一样的字符
网上的例子都用上了正则表达式,但是由于对正则了解不深,于是自己尝试着写了ge
// 第一种方法
function demo(str){
	var arr = str.split("");
	var m = arr.length;
	res = new Array;
	for (var i = 0; i < m; i++) {
		if(arr[i] === arr[m-1-i]){
			res[i] = "true";
		}else{
			res[i] = "false";
		}
	}
	return res;
}
function demo2(str){
	demo(str);
	console.log(res);
	if(res.indexOf("false") === -1){
		console.log("str is");
	}else{
		console.log("str is not");
	}
}


// 第二种方法
function demo(str){
	var a = str.split("");
	var b = a.reverse();
	var c = b.join("");
	if (str === c) {
		console.log("str is");
	}else{
		console.log("str is not");
	}
}

哈哈,代码写的不怎样,将就看吧!

demo ten - 如何执行函数内部的函数,直接用例子来说明

写一个sum方法,实现参数相加。那么下面这两个分别怎么写呢
sun(a , b);
sun(a)(b);
实际上你只要明白sum(a)(b)代表着什么是很好写出来的
sum(a)(b)代表先执行sum()方法,并且传入a参数,然后再执行sum()内部的返回方法,传入参数为b
function sum(){
	arg1 = arguments[0];
	if (arguments.length === 2) {
		sum = arguments[0] + arguments[1];
		console.log(sum);
	}else{
		return function () {
			return sum = arguments[0] + arg1;
		}
	}
}

sum(2)(3);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值