JS学习随记_day04

page 261:
//关于三个修饰符
//i:忽略大小写,m:支持多行模式,g:全局搜索(没g搜出一个就罢工了)
var testreg3 = /^java$/img;
"Java\nis fun\nJAVA".match(testreg3)   // => ["Java", "JAVA"]
//其中 "^" 只搜在行首的,"$"只搜在行末的
page 263:
//在不适用g修饰符下,()的作用就来了
var urlReg = /(\w+):\/\/([\w.]+)\/(\S*)/;
var text = "Visit my blog at http://www.example.com/~david"
result = text.match(urlReg)  // => ["http://www.example.com/~david", "http", "www.example.com", "~david"]
//result[1]就指的是第一个圆括号括起来的内容,以此类推
page 264:
//当有需求正则不能写死的时候,需要用到RegExp()构造函数
var zipcode = new RegExp("\\d{5}", "g");  // 注意是\\
page 265:
//regexp的exec方法,注意看lastIndex的变化,当遍历完了之后,lastIndex自动置为零
//当然,regexp还有test方法。这个很熟了
var pattern = /Java/g;
var text = "JavaScript is more fun than Java!";
var result;
while((result = pattern.exec(text)) != null){
    alert("Matched '" + result[0] + "'" + 
    " at position " + result.index + 
    "; next search begins at " + pattern.lastIndex);
    con sole.log(result)
}
con sole.log(pattern.lastIndex)
page 272:
//con st关键字用来定义常量,即不可重复赋值的变量
//如:
con st pi = 3.14;
pi =4 || con st pi = 4 || var pi = 4     //这都是错的,常量不可重复赋值
page 273:
//let关键字,只能在就近的括号内
var o = {x:1, y:2};
for(let p in o) con sole.log(p);
for each(let v in o) con sole.log(v);  //不推荐使用for each,它只能拿到值,而且存在严重的浏览器兼容问题
con sole.log(p) //引用错误,p没定义
page 275:
//解构赋值,一个强大的功能,let,var 声明的都可以用
function polar(x,y){
    return [Math.sqrt(x*x+y*y), Math.atan2(y,x)];
}

function cartesian(r,theta){
    return [r*Math.cos(theta), r*Math.sin(theta)];
}

let [r,theta] = polar(1.0, 1.0);
let [x,y] = cartesian(r,theta);

//还可以写“链式”的解构赋值:
let first, second, all;
all = [first, second] = [1,2,3,4]; // first=1,  second=2, all=[1,2,3,4]
page 279:
//关于迭代器
var o = {x:1, y:2, z:3};
con sole.log(Iterator(o).next())
con sole.log(Iterator(o).next()) // => 两次拿到的都是 ["x", 1]
//目前不知道Iterator().next()怎么用
//指南中推荐我们的遍历方法是用for/in:
for(let [k,v] in Iterator({a:1, b:2}))
    con sole.log(k + "=" + v);   // => a=1, b=2

//Iterator()函数返回的迭代器的俩重要性质:
//1.忽略继承的属性
//2.有可选参数true,当传true时,只对属性名进行遍历而忽略属性值
var o = {x:1, y:2, z:3};
Object.prototype.s = "ss";
for(p in o) con sole.log(p);    // => x,y,z,s
for(p in Iterator(o)) con sole.log(p); // => ["x",1], ["y",2], ["z",3]
for(p in Iterator(o,true)) con sole.log(p); // => x,y,z

你可能感兴趣的:(JS学习随记_day04)