JavaScript采用双精度64位格式,因此并不存在整数console.log(3 / 2);
值会得到1.5而不是1。通过Math.floor(3 / 2)
向下取证得到1
字符串
"hello".length
得到字符串长度5
"hello".charAt(0)
得到'h'
"hello, world".replace("world", "mars")
hello, mars
如果一个字符串加上一个数字,其他数都会被转换为字符串
"3" + 4 + 5; //"345"
3 + 4 + "5"; // "75"
,因此通过与空字符""
相加能达到快速转化为字符串
字符串比较:123 == "123" //true
123 === "123" //false
let/const/var
let
只能在当前变量作用域内使用,也就是一对大括号内
var
当前文件任何位置都可赋值、可访问
const
与var区别是值不可更改
Object/Array
两种方法创建一个空对象var obj = new Object();
和var obj = {};
可以通过链式或括号方式访问,如下结构
var obj = {
detail: {
color: "orange"
}
}
obj.detail.color
obj["detail"]["color"]
使用括号访问,解析器会进行优化,比如obj.for这样访问会因为for
是系统预留关键字而失败,使用括号访问就没这问题. ES5后可以进行预留关键字作为属性访问
数组的长度是数组中最大索引值加1的值
var a = ["a", "b"];
a[100] = "c"
a.length; //101
a.push("1") //追加元素
方法名称 描述
a.toString() 返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。
a.toLocaleString() 根据宿主环境的区域设置,返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。
a.concat(item1[, item2[, ...[, itemN]]]) 返回一个数组,这个数组包含原先 a 和 item1、item2、……、itemN 中的所有元素。
a.join(sep) 返回一个包含数组中所有元素的字符串,每个元素通过指定的 sep 分隔。
a.pop() 删除并返回数组中的最后一个元素。
a.push(item1, ..., itemN) 将 item1、item2、……、itemN 追加至数组 a。
a.reverse() 数组逆序(会更改原数组 a)。
a.shift() 删除并返回数组中第一个元素。
a.slice(start, end) 返回子数组,以 a[start] 开头,以 a[end] 前一个元素结尾。
a.sort([cmpfn])
依据可选的比较函数 cmpfn 进行排序,如果未指定比较函数,则按字符顺序比较(即使被比较元素是数字)。
a.splice(start, delcount[, item1[, ...[, itemN]]])
从 start 开始,删除 delcount 个元素,然后插入所有的 item。
a.unshift(item1[, item2[, ...[, itemN]]])
将 item 插入数组头部,返回数组新长度(考虑 undefined)。
函数
function add(x, y) {
var total = x + y;
return total;
}
add(); //NaN 不能在undefined对象上进行加法操作
add(2, 3, 4)//5 前2个值相加,4被忽略了
也可以通过arguments
来读取所有的被传入的参数,可将上面方法改写成
function add() {
var total = 0;
for (var i = 0, i < arguments.length; i++){
total += arguments[I];
}
return total;
}
add(2, 3, 4, 5); //14
或者
function add(...args) {
var total = 0;
for (let value of args) {
total += value
}
return
}
如果传入的是个数组,通过add.apply(null, [2, 3, 4, 5]);
也可以使用匿名函数实现var add = function() {...}
与上面函数效果一样
通过原型链(prototype chain)实现runtime添加方法
var s = "test";
s.reversed(); //TypeError on line 1: s.reversed is not a function
String.prototype.reversed = function() {
var r = "";
for (var i = this.length - 1; i >= 0; i--) {
r += this[I];
}
return r;
}
s.reversed(); //tset
网友评论