javascript进阶修炼之一——javascript必备操做
动态选择方法及属性
使用方括号操作符,比点操作符功能更强大。因为可以在[ ]方括号中使用任何代表成员名称的内容访问对象。包括字面量,保存着成员名称的变量,名称组合,三元操作符。所有这些内容都会被处理成一个字符串,然后javascript会用这个字符串来寻找对应的成员。
- 使用方括号操作符
object['propertyName'] //=>object.propertyName
object['methodName'](arg1) //=>object.methodName(arg1)
- 切换行为
element[shoouldBeVisible ? 'show' : 'hide']();
//IE,假设这里已经有一个isIE变量
element[isIE ? 'simpleEffect' : 'complexEffect']() ;
- 拼接方法名称
element[ (enable ? 'add' : 'remove' ) + 'className' ] ('enabled' ) ;
通过模块模式实现代码访问控制
//在匿名函数中使用var关键字
(function(){
var privateField = 42;
function innerFunc(){
notSoPrivate = 43 ;
return notSoPrivate ;
}
alert(privateField); //==>42
innerFunc();
alert(notSoPrivate) ;//=>43
})();
alert(typeof privateField); //=>Undefined
alert(notSoPrivate); //=>43 (变量被泄露到外部)
//试试这个例子:“私有属性”
var obj = (function(){
var privateField = 42 ;
var publicField = 'footbar' ;
function processInternals(){
alert('Internal stuff:'+privateField);
}
function run(){
processInternals();
alert('still private stuff:'+privateField);
alert('public stuff:'+publicField);
}
return{
publicField:publicField,
run:run
};
})();
obj.run();//3个alert都弹出
obj.publicField ;//footbar
obj.processInternals();//Undefined
obj.privateField ;//Undefined
使用可选/可变/命名参数
//申明参数(命名参数)
function repeat(rant,times){
while(--times>=0){
alert(rant);
}
}
repeat('IE8 must die!',5); //=>连续弹出5个对话框
//模拟可变参数列表
function repeat(times){
while(--times>=0){
for(var index = 1,len=arguments.length;index<len;++index){
alert(arguments[index]);
}
}
}
repeat(2,'IE8 must die!','So should IE7...');//==>连续弹出4个对话框
//为可选参数设置默认值
function repeat(times,rant){
if(undefined ===rant){
rant = 'IE8 must die!';
}
while(--times>=0){
alert(rant);
}
}
repeat(3);//==>连续弹出3个IE8对话框
repeat(3,'So should IE7 do..');//==>连续弹出3个有关IE7的对话框
//用字面量对象实现伪命名参数
function repeat(options){
options = options || {} ;
for(var opt in(repeat.defaultOptions || {})){
if(!(opt in options){
options[opt] = repeat.defaultOptions[opt];
}
}
for(var index = 0 ;index<options.times;++index){
alert(options.rant);
} }
repeat.defaultOptions = {times;2,rant:'IE8 must die!'} ; repeat() ;//==>弹出2个与IE8有关的对话框
repeat({times:3});//==>弹出3个与IE8有关的对话框
repeat({times:2,rant:'Flash must die!'}); //弹出2个与Flash有关的对话框
javascript进阶修炼之一——javascript必备操做的更多相关文章
- javascript进阶修炼之二——DOM,事件及定时器
获得DOM元素的引用 首先注意以下几点: 注意document.getElementById,任何依赖于这个方法的代码都会成为IE怪异行为的牺牲品.因为在IE中,这个方法也会通过name属性来寻找 ...
- JavaScript进阶(六)用JavaScript读取和保存文件
用JavaScript读取和保存文件 因为Google还不提供同步插件数据的功能,所以导入和导出插件配置就必须和文件打交道了.而出于安全原因,只有IE才提供访问文件的API:但随着HTML 5的到来, ...
- JavaScript 进阶教程一 JavaScript 中的事件流 - 事件冒泡和事件捕获
先看下面的示例代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Jav ...
- 4、JavaScript进阶篇①——基础语法
一.认识JS 你知道吗,Web前端开发师需要掌握什么技术?也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HTML+CSS创建一个漂亮的页面,但这还不够,它只是静态页面 ...
- JavaScript 进阶(一)JS的"多线程"
这个系列的文章名为“JavaScript 进阶”,内容涉及JS中容易忽略但是很有用的,偏JS底层的,以及复杂项目中的JS的实践.主要来源于我几年的开发过程中遇到的问题.小弟第一次写博客,写的不好的地方 ...
- JavaScript进阶(一)
OK接下来,我们再次梳理一遍js并且提高一个等级. 众所周知,web前端开发者需要了解html和css,会只用html和css创建一个漂亮的页 面,但是这肯定是不够的,因为它只是一个静态的页面,我们 ...
- JavaScript进阶(九)JS实现本地文件上传至阿里云服务器
JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务 ...
- JavaScript进阶(十一)JsJava2.0版本
JavaScript进阶(十一)JsJava2.0版本 2007年9月11日,JsJava团队发布了JsJava2.0版本,该版本不仅增加了许多新的类库,而且参照J2SE1.4,大量使用了类的继承和实 ...
- javascript基础修炼(2)——What's this(上)
目录 一.this是什么 二.近距离看this 三. this的一般指向规则 四. 基本规则示例 五. 后记 开发者的javascript造诣取决于对[动态]和[异步]这两个词的理解水平. 一.thi ...
随机推荐
- 网络软中断与NAPI函数分析
网卡只有rx硬中断,外设通过中断控制器向CPU发出有数据包来临的通知, 而没有tx硬中断,因为发送数据包是cpu向外设发出的命令. ixgbe驱动的rx软中断和tx软中断在同一个CPU上处理. htt ...
- JavaScript高级程序设计-读书笔记(6)
第20章 JSON JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量 JSON的语法可以表示一下三种类型的值 l 简单值:使用与JavaScript相同的语法,可以在JS ...
- xdebug 常用函数
转自:http://blog.csdn.net/samxx8/article/details/7050282 string xdebug_call_class()返回当前被调用的函数或方法所属的类的类 ...
- Class 的基本语法
简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数.下面是一个例子. function Point(x, y) { this.x = x; this.y = y; } Point ...
- 1-15-2-RAID10 企业级RAID磁盘阵列的搭建(RAID1、RAID5、RAID10)
RAID10的搭建: 有两种方法, 第一种:直接使用四块磁盘,创建级别为10的磁盘阵列 第二种:使用四块磁盘先创建两个RAID1,然后在用RAID1创建RAID0 第一步:添加五个磁盘到虚拟机 开机后 ...
- Gruntjs提高生产力(三)
以下例子来自真实项目,有所删减 grunt-test project 目录结构如下 一我的目的: 1.在src-dev目录中开发最终产出于src目录 2.src-dev中的index目录相当于一个wi ...
- python 重新修炼之路
第一篇 基础篇 1.1 打造万能的开发环境-conda 1.2 python的代码规范与vscode配置 1.3 变量 与 关键字 1.4 数据类型 1.4.1 数字 ...
- es6环境中,export与import使用方法
前言 参考自阮一峰大神的教程:http://es6.ruanyifeng.com/?search=export&x=6&y=5#docs/module#export-命令 声明:如有问 ...
- form表单注册——HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- volatile关键字解析(一)
引起线程并发问题,可以简单的总结为以下三条: 原子性问题 可见性问题 有序性问题(重排序问题) 原子性问题 什么是原子性? 原子性,即一个操作或者多个操作,要么全部执行并且执行过程中不会被任何因素打断 ...