# 数据类型
# String
判断字符串所占字节数
获取字符串 String.fromCharCode(69);
全局替换 str.replace(/\w/g, 'dd')
# Object 引用类型
判断属于 Object 里的哪种
Object.prototype.toString.call(obj) // '[object String]'
- jQuery 方法
console.log(
$.type(num),
$.type(str),
$.type(bool),
$.type(arr),
$.type(json),
$.type(func),
$.type(und),
$.type(nul),
$.type(date),
$.type(reg),
$.type(error)
);
# Math 对象
- 取整方法
Math.ceil()
向上取整Math.floor()
向下取整Math.round()
四舍五入
# 基本类型和引用类型的比较
请记住基本类型通过值来传递和比较,我们实际上另外创建了一个a的拷贝
var a = "Andrew",
b = a;
b = "Robbins";
a === b; // false
- 我们说的通过引用进行对象比较是:两个对象的值是否相同取决于它们是否指向相同的底层对象。
var a = {name: "andrew"},
b = a;
b.name = "robbins";
a === b; // true
# 包装对象
当你尝试调用基本类型的方法,JavaScript在幕后做了一个巧妙的处理,将你的基本类型的值转换成临时对象用于构造函数,决定使用哪个构造函数取决于你尝试改变的基本类型的值,在String中调用.length会使用string()构造函数临时将基本类型转变成对象—允许你使用length方法而改变它,这个临时对象被称为包装对象。
我们也需要了解基本类型的属性是只读和临时的。
# Array
- NodeList 转换为数组
var elArray = [].slice.call(document.querySelectorAll(selector), 0);
// Now use the element array to fetch a list of ids:
var ids = elArray.map(function(el) { return el.getAttribute('id'); });
- 删除数组中某元素
array.remove(index)
- 排序(不严谨的中文排序)
a.localeCompare(b);
# JSON
- JSON.parse 用法
JSON.parse('{"p": 5}', (key, value) =>
typeof value === 'number'
? value * 2 // return value * 2 for numbers
: value // return everything else unchanged
);
// { p: 10 }
JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
console.log(key); // log the current property name, the last is "".
return value; // return the unchanged property value.
});
// 1
// 2
// 4
// 6
// 5
// 3
// ""