项目要求开发一个微信小程序,我负责前端工作,这才开始真正接触前端语言。目前小程序已完成,决定从头梳理一些前端内容。本篇就从js语言基础的小trick开始~。
js中使用typeof判断值的类型。
判断数据类型是否为undefined:
判断undefine时需要加上引号
var exp = undefined;
if (typeof(exp) === "undefined")
{
console.log("undefined");
}
// typeof后可以不跟括号
判断数据类型是否为null:
使用非其他类型来判断:
var exp = null;
if (!exp && typeof(exp)!==”undefined” && exp!==0)
{
console.log(“is null”);
}
直接判断:
var exp = null;
if (exp === null)
{
console.log("is null");
}
直接使用长度来判断,数组同理:
let map = {
};
Object.keys(map).length === 0
可以使用apply来实现。apply传入的是数组。
var arr = [22,13,6,55,30];
var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 55,6
var arr = [22,13,6,55,30];
console.log(Math.max(...arr));// 55
字符串可以采用 parseInt()方法来转换为数字。
string_type_number = "1"
console.log(typeof string_type_number) // string
int_type_number = parseInt(string_type_number)
console.log(typeof int_type_number) // number
也可采用的用字符串乘以数字1来强制转换。
int_type_number = int_type_number * 1
注:使用此方法即使空字符串也会输出0
console.log(""*1) // 0
想要四舍五入取float型数值的小数点后两位数,直接使用toFixed()函数即可。
// 我的使用场景:knowledgeMap[knows[i]]是float类型的小数,我需要转为百分比
// knowledgeMap[knows[i]]:0.0723458943
(knowledgeMap[knows[i]] * 100).toFixed(2) + "%" // 7.23%
此方法会出现js精度丢失等问题,对精度要求严格的小伙伴直接使用toFixed会出现问题
// 不存在返回-1,存在返回该元素在数组中的位置索引
let index = JSON.stringify(object).indexOf(JSON.stringify(obj1))
以上几种都是很基本的js操作,但因为我是js小白,在做项目的时候有些细节还是不太明白,就总结了一下我卡壳的地方。希望对同是小白的朋友有所帮助~