推荐牛X的一本JS书

简介: 主要是看阮一峰的教程时,他参考书目里有这一本中文的, 找来一看,果然高。。 练习一下。 function Base(name) { this.name = name; this.

主要是看阮一峰的教程时,他参考书目里有这一本中文的,

找来一看,果然高。。

练习一下。

function Base(name) {
  this.name = name;
  this.getName = function() {
    return this.name;
  };
}

function Child(id) {
  this.id = id;
  this.getId = function() {
    return this.id;
  };
}
Child.prototype = new Base("base");
var c1 = new Child("child");
console.log(c1.getId(), c1.getName());

function Person(name, age) {
  this.name = name;
  this.age = age;
  
  this.getName = function() {
    return this.name;
  };
  
  this.getAge = function() {
    return this.age;
  };
  
  this.getNameAge = function() {
    return this.name + this.age;
  };
}

var tom = new Person("Tom", 38);
var jerry = new Person("Jerry", 6);
console.log(tom.getName());
console.log(jerry.getAge());

var jack = {
  name: "jack",
  age: 26,
};

var abruzzi = {
  name: "abruzzi",
  age: 26,
};

function printName() {
  return this.name;
}

console.log(printName.call(jack));
console.log(printName.call(abruzzi));

function Address(street, xno) {
  this.street = street || "HuangQuan Road";
  this.xno = xno || 135;
  this.toString = function() {
    return "street : " + this.street + ", No : " + this.xno;
  };
}

function Person(name, age, addr) {
  this.name = name || 'unknown';
  this.age = age || 34;
  this.addr = addr || new Address(null, null);
  this.getName = function() {return this.name;};
  this.getAge = function() {return this.age;};
  this.getAddr = function() {return this.addr.toString();};
}

var jack = new Person('jack', 26, new Address("QingHai Road", 135));
var abruzzi = new Person('abruzzi', 26);

console.log(jack.getName());
console.log(jack.getAge());
console.log(jack.getAddr());
console.log(abruzzi.getName());
console.log(abruzzi.getAge());
console.log(abruzzi.getAddr());

function p() {
  console.log("invoke p by ()");
}

p.id = "func";
p.type = "function";

console.log(p);
console.log(p.id + ":" + p.type);
console.log(p());

function adPrint(str, len, option) {
  var s = str || "default";
  var l = len || s.length;
  var o = option || "i";
  
  s = s.substring(0, l);
  switch(o) {
    case "u":
      s = s.toUpperCase();
      break;
    case "l":
      s =s.toLowerCase();
      break;
    default:
      break;
  }
  console.log(s);
}

console.log(adPrint("Hello, world"));
console.log(adPrint("Hello, world", 5));
console.log(adPrint("Hello, world", 5, "l"));
console.log(adPrint("Hello, world", 5, "u"));

var jack = {
  name: "jack",
  age: 26,
};

var abruzzi = {
  name: "abruzzi",
  age: 27,
};

function printName() {
  return this.name + ":" + this.age;
}

function setName(name) {
  this.name = name;
}

setName.apply(jack, ["Jack Sept."]);
console.log(printName.apply(jack));
setName.call(jack,"Jack Sept.t");
console.log(printName.apply(jack));

function add(x, y) {
  return x + y;
}

var a = 0;
a = add;
var b = a(2, 3);
console.log(b);

var obj = {
  id: "obj1",
};

obj.func = add;
console.log(obj.func(2, 3));

function adPrint2(str, handler) {
  console.log(handler(str));
}
function up(str) {
  return str.toUpperCase();
}
function low(str) {
  return str.toLowerCase();
}

console.log(adPrint2("Hello,world", up));
console.log(adPrint2("Hello,world", low));

function currying() {
  return function() {
    console.log("curring");
  };
}
currying();
currying()();


var array = [1, 2, 3, 4, 5];
console.log(array.length);
array.length = 3;
console.log(array.length);
console.log(array);
var stack = new Array();
stack['second'] = "okay, then";
stack['first'] = 3.1415;
stack['third'] = new Date();

for(var item in stack) {
  console.log(typeof stack[item]);
}
console.log(stack.length);

var array = [];
array.push(1);
array.push(2);
array.push(3);
array.push("four");
array.push("five");
array.push(3.14159);

var len = array.length;
for(var i = 0; i < len; i++) {
  console.log(typeof array[i]);
}
for (var i = 0; i < len; i++) {
  console.log(array.pop());
}
console.log(array.length);
array = ["one", "two", "three", "four", "five"];
var str1 = array.join(",");
var str2 = array.join("|");
console.log(str1);
console.log(str2);
var another = ["this", "is", "another", "array"];
var another2 = ["yet", "is", "another", "array2"];
var bigArray = array.concat(another, another2);
console.log(bigArray);
console.log(bigArray.slice(5, 9));
console.log(bigArray.splice(5, 2));

var emailval = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
console.log(emailval.test("kmustlinux@hotmail.com"));
console.log(emailval.test("@hotmail.com"));
var variable = /[a-zA-Z_][a-zA-Z0-9_]*/;
console.log(variable.test("hello"));
console.log(variable.test("0871"));
var pid = /^(\d{15}|\d{18})$/;
var mphone = /\d{11}/;
var phone = /\d{3, 4}-\d{7, 8}/;
mphone.test("13865732134");
var str = "life is very much like a mirror.";
var result = str.match(/is|a/g);
console.log(result);
var str = "<span>Welcome, John</span>";
var result = str.replace(/span/g, "div");
console.log(result);
var result = str.replace(/(\w+), \s(\w+)/g, "$2 $1");
console.log(result);
var str = "john: wow : tomorrow: happy";
var result = str.split(/s*:\s*/);
console.log(result);
var str = "Tomorrow is another day";
var index = str.search(/another/);
console.log(index);


var outter = [];
function closeTest() {
  var array = ["one", "two", "three", "four", "five"];
  for(var i = 0; i < array.length; i++) {
    var x = {};
    x.no = i;
    x.text = array[i];
    x.invoke = function(no) {
      return function() {
         console.log(no);
      };
    }(i);
    outter.push(x);
  }
}
closeTest();
console.log(outter[0].invoke());
console.log(outter[1].invoke());
console.log(outter[2].invoke());
console.log(outter[3].invoke());
console.log(outter[4].invoke());

目录
相关文章
|
4天前
|
XML JavaScript 前端开发
js基础知识
js基础知识
14 2
|
4月前
|
存储 JSON JavaScript
js必备知识小结(二)
js必备知识小结(二)
16 0
|
4月前
|
存储 JavaScript 前端开发
js必备知识小结(一)
js必备知识小结(一)
14 0
|
7月前
|
存储 JavaScript 前端开发
js学习知识点总结
js学习知识点总结
|
存储 JavaScript 前端开发
重温js——js语法基础
在变量声明这里,大家肯定还记得。所有的js 在使用的时候需要进行声明。也就是在内存地址中开辟一个空间。然后等待数据的"入住"
重温js——js语法基础
|
JavaScript 前端开发
JS基础教程2——JS实现与基础知识
JS可以写在HTML中<body>标签中并且用<scrpit>标签包裹,但是要注意一定要写在最后面不能写在前面!!!!! JS还可以写在.js文件中(建议项目中js文件存放在js文件夹中)然后通过<dcrpit scr="">中scr导入js文件即可。
|
JavaScript 前端开发
JS进阶笔记3
JS进阶笔记3
94 0
JS进阶笔记3
|
JavaScript 前端开发
JS进阶笔记5
JS进阶笔记5
67 0
JS进阶笔记5
|
JavaScript
JS查漏补缺——神奇的this
JS查漏补缺系列是我在学习JS高级语法时做的笔记,通过实践费曼学习法进一步加深自己对其的理解,也希望别人能通过我的笔记能学习到相关的知识点。这一次我们来理解一下面试题常考的this的指向
98 0
|
JavaScript 前端开发
【青训营】写好JS——各司其责
【青训营】写好JS——各司其责
69 0
【青训营】写好JS——各司其责