我的 JavaScript Cookbook
Boolean
布尔值为false的类型
null
undefined
0, NaN
""
false
逻辑运算符
运算符 描述 例子
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true
RegExp
构建包含变量的正则表达式
var mod_letters = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];
var pre_letters = ['X', 'Y', 'Z'];
var reg1 = new RegExp("^(\\d{8})([" + mod_letters.join(' ') + "])$");
var reg2 = new RegExp("^([" + pre_letters.join(' ') + "])(\\d{7})([" + mod_letters.join(' ') + "])$");
String
string convert to integer
var a = parseInt("10");
浏览器相关
redirect
var url = window.location.href + "/vote_result";
window.location.href = url;
刷新页面
$('#something').click(function() {
location.reload();
});
// Javascript刷新页面的几种方法:
history.go(0)
location.reload()
location=location
location.assign(location)
document.execCommand('Refresh')
window.navigate(location)
location.replace(location)
document.URL=location.href
浏览后退 navigation back
window.history.back()
面向对象
函数中this的四种情况
- 参考: http://jjyr.github.io/2014/02/18/javascript-tips-during-my-studying-2/
//1. 函数绑定到对象上时, this为对象
a = {func: function(){ console.log(this)}}
a.func() // this是a
//2. 没有绑定到对象时,this为全局对象
(function(){ console.log(this) })()
//上面的this在浏览器中是window(全局对象)
//3. 用new调用时this绑定到新构造的对象
//4. 函数对象的apply方法
(function(){console.log(this)}).apply("hello")
//通过apply可以指定function的this值
原型 prototype
- 参考: http://jjyr.github.io/2014/02/18/javascript-tips-during-my-studying-2/
//javaScript中的原型继承必须通过函数来完成
//function有一个很重要的prototype属性,默认值为{}
(function(){}).prototype
//=> Object {}
//函数的prototype属性是javascript中原型的关键
//用new去调用function时,会以该函数的prototype为原型构建对象(常用此行为来模拟继承)
a = {hello: function(){return "world"}}
//现在来构建一个链接到a的对象,首先需要一个function
A = function(){}
A.prototype = a
//用new调用A时会构建出以对象a为原型的对象
b = new A()
b.hello()
//=> "world"
b.__proto__ == a
//=> true
//所有对象都隐含链接自Object.prototype(相当于new Object())
//没有类型,又能随意的改变原型的键,结果就是可以很方便的动态更改代码
//通过函数和对象的任意组合,可以做到同一个原型对象具有多个“构造器”,可以任意的链接原型等等。比基于面向对象的语言要灵活许多
NaN, undefined
NaN == NaN // false
isNaN(NaN) // true
undefined == undefined // true
弹出框居中显示
function adjustDialogPosition($dialog){
$dialog.css({
position: 'fixed',
top: ((window.innerHeight/2) - ($dialog.height()/2))+'px',
left: ((window.innerWidth/2) - ($dialog.width()/2))+'px'
})
}