JavaScript重生之路-0x01
函数
高阶函数
every
判断所有元素是否满足测试条件
var arr = ['Apple', 'pear', 'orange']; |
find
查找符合条件的第一个元素
var arr = ['Apple', 'pear', 'orange']; |
findIndex
返回索引
firEach
类似map无返回值
闭包
箭头函数
x => x*x |
返回对象
x => ({foo: x})
this指向
// 错误 |
由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略
var obj = { |
generate
生成器,和python的一样
自增器
function* next_id(){
var i=1;
while(true){
yield i;
i++;
}
}
调用
var g = next_id();
g.next().value;
for (var x of next_id()){
console.log(x);
}
标准对象
typeof 123; // 'number' |
数据转换
var n = Number('123'); // 123,相当于parseInt()或parseFloat() |
判断Array要使用Array.isArray(arr);
判断null请使用myVar === null;
判断某个全局变量是否存在用typeof window.myVar === ‘undefined’;
函数内部判断某个变量是否存在用typeof myVar === ‘undefined’
(123).toString(); // ‘123’
Date
var now = new Date(); |
解析
var d = Date.parse('2022-07-27T14:39:40.20+08:00'); // 1658903980200 时间戳
d = new Date(d); // Wed Jul 27 2022 14:39:40 GMT+0800 (中国标准时间)
时间戳
Date.now();
new Date().getTime();
正则表达式
var re1 = /ABC\-001/;
var re2 = new RegExp('ABC\-001');
判断是否匹配
var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false
re.test('010 12345'); // false
切分字符串
'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']
提取字串
var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null
第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。
贪婪匹配
var re = /^(\d+?)(0*)$/; // 加?匹配尽可能少
re.exec('102300'); // ['102300', '1023', '00']
全局搜索
匹配多个,要不只能匹配第一个
var s = 'JavaScript, VBScript, JScript and ECMAScript'; |
匹配邮箱
var re = /^[0-9a-zA-Z\.]+@\w+\.[a-z]{2,3}$/;
json
序列化
var xiaoming = { |
解析
JSON.parse('[1,2,3,true]'); // [1, 2, 3, true] |
面向对象
创建
类似结构体
function Student(name) { // 大写 |
function Student(name) { |
继承
拥抱ES6
class Student { |
class PrimaryStudent extends Student { |
猫类
class Animal { |
浏览器
内置对象
window
- innerWidth
- innerHeight
- outerWidth
- outerHeight
navigator
- navigator.appName:浏览器名称;
- navigator.appVersion:浏览器版本;
- navigator.language:浏览器设置的语言;
- navigator.platform:操作系统类型;
- navigator.userAgent:浏览器设定的User-Agent字符串。
screen
- screen.width:屏幕宽度,以像素为单位;
- screen.height:屏幕高度,以像素为单位;
- screen.colorDepth:返回颜色位数,如8、16、24。
location
- location.protocol; // ‘http’
- location.host; // ‘www.example.com'
- location.port; // ‘8080’
- location.pathname; // ‘/path/index.html’
- location.search; // ‘?a=1&b=2’
- location.hash; // ‘TOP’
- location.assign(‘url’) // 加载新页面
- location.reload() // 刷新
document
操作DOM树的根节点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 S.M.A.R.T!
评论