boolean用 is 开头类型透明也就是在变量定义的时候可以知道变量的类型
主要有以下三种方式:
初始化变量
var found = false; // boolean
var count = -1; // number
缺点:不能使用在函数声明中的函数参数(现在通过ES6中的函数参数初始化解决)
使用匈牙利标记法 o表示对象,s表示字符串...
var bFound; // boolean
var iCount; // int
缺点:代码难以阅读
使用类型注释 类型注释放到变量名右边,初始化前面
var found /*:Boolean*/ = false;
var count /*:int*/ = -1;
缺点:不能使用js多行注释
通过动态修改样式类,而不是修改特定样式
// 不建议写法
element.style.color = ‘red‘;
element.style.backgroundColor = ‘blue‘;
// 建议写法
// css
.dit{
color: red;
background-color: blue;
}
// js
element.className = ‘edit‘;
有以下几条原则:
任何事件处理程序都应该处理事件,然后将处理转交给应用逻辑
// 不建议写法
function handleKeyPress(event){
if(event.keyCode === 13){
var target = event.target;
var value = 5 * parseInt(target.value);
if(value > 10){
document.getElementById(‘id‘).style.display = ‘block‘;
}
}
}
// 建议写法
// 好处:如果我点击鼠标也执行相同逻辑,那么直接调用validateValue就可以了
// 应用逻辑
function validateValue(value){
value = 5 * parseInt(value);
if(value > 10){
document.getElementById(‘id‘).style.display = ‘block‘;
}
}
// 事件处理程序
function handleKeyPress(event){
if(event.keyCode === 13){
var target = event.target;
validateValue(target.value);
}
}
简单点说就是不是你自己的创建或者维护的某个对象,他的对象和方法,不能修改
具体说:
最多创建一个全局变量,其他对象或函数保存在其中,其中有个概念叫做命名空间
命名空间就是指用来放置页面功能的对象
// 命名空间
let YAHOO = {};
YAHOO.util.Dom
YAHOO.util.Event
....
判断一个是否为null 如果直接比较是使用过度的,并且由于比较不充分可能导致错误,
所以在判断一个值的类型的时候要与期望的类型进行比较,而非不被期望的那些
// value 期望一个Array
if(value !== null){
// do something....
}
// 建议
if(value instanceof Array){
// do something....
}
下面列举一下判断数据类型的方法
typeofinstanceoftypeofundefined,使用typeof,不要直接===判断,如果函数没有声明,那么会报错Object.prototype.toString.calllet ts = Object.prototype.toString;
ts.call([]) === ‘[Object Array]‘; // true
ts.call(123) === ‘[Object Number]‘; // true
ts.call({}) === ‘[Object Object]‘; // true
....
使用常量可以避免魔术字符串,也可以帮助构建国际化
建议使用常量的几种情况:
原文:https://www.cnblogs.com/fs0196/p/12469963.html