一,True and False表达式
以下都是false表达式
null
undefined
'' the empty string
0 the number
以下都是true表达式
'0' the string
[] the empty array
{} the empty object
因此,
while (x != null) {
简写成
while (x) {
if (y != null && y != '') {
简写成
if(y)
特别小心以下的陷阱
* Boolean('0') == true
'0' != true
* 0 != null
0 == []
0 == false
* Boolean(null) == false
null != true
null != false
* Boolean(undefined) == false
undefined != true
undefined != false
* Boolean([]) == true
[] != true
[] == false
* Boolean({}) == true
{} != true
{} != false
二、条件语句和(三元)"? :"运算符
如下
if (val != 0) {
return foo();
} else {
return bar();
}
简写成
return val ? foo() : bar();
三元运算符当然还可以用来生成html
var html = '<input type="checkbox"' +
(isChecked ? ' checked' : '') +
(isEnabled ? '' : ' disabled') +
' name="foo">';
三、&& and ||
"||" 也被认为用来设置默认值(default)
/** @param {*=} opt_win */
function foo(opt_win) {
var win;
if (opt_win) {
win = opt_win;
} else {
win = window;
}
// ...
}
简写成
/** @param {*=} opt_win */
function foo(opt_win) {
var win = opt_win || window;
// ...
}
"&&" 如下,
if (node) {
if (node.kids) {
if (node.kids[index]) {
foo(node.kids[index]);
}
}
}
简写成
if (node && node.kids && node.kids[index]) {
foo(node.kids[index]);
}
或者
var kid = node && node.kids && node.kids[index];
if (kid) {
foo(kid);
}
甚至
node && node.kids && node.kids[index] && foo(node.kids[index]);
四,使用join构建字符串
function listHtml(items) {
var html = '<div class="foo">';
for (var i = 0; i < items.length; ++i) {
if (i > 0) {
html += ', ';
}
html += itemHtml(items[i]);
}
html += '</div>';
return html;
}
这在IE中会非常慢,改写如下
function listHtml(items) {
var html = [];
for (var i = 0; i < items.length; ++i) {
html[i] = itemHtml(items[i]);
}
return '<div class="foo">' + html.join(', ') + '</div>';
}
可以使用数组充当stringbuilder,转换时使用join。需注意的是使用html[i]赋值比html.push更快,你试试。
五,遍历/迭代NodeList
var paragraphs = document.getElementsByTagName('p');
for (var i = 0; i < paragraphs.length; i++) {
doSomething(paragraphs[i]);
}
这样更好
var paragraphs = document.getElementsByTagName('p');
for (var i = 0, paragraph; paragraph = paragraphs[i]; i++) {
doSomething(paragraph);
}
当然遍历子节点时也可以使用firstChild和 nextSibling属性
var parentNode = document.getElementById('foo');
for (var child = parentNode.firstChild; child; child = child.nextSibling) {
doSomething(child);
}
分享到:
相关推荐
JavaScript 程序设计实验 1 本实验旨在让学生熟悉 JavaScript 的基本概念和应用,包括变量、表达式、运算符、对话框、函数和程序设计等方面。通过本实验,学生将掌握 JavaScript 的基本语法和应用,提高网页设计和...
3. 静态资源:如HTML、CSS和JavaScript文件,构成了用户界面和交互效果。 4. 图片和其他媒体文件:用户上传的图片或音频文件等。 5.配置文件:如config文件,存储系统设置和连接信息。 综上所述,这个基于ASP的轻...
- **JavaScript文件**:实现客户端的交互效果和验证。 - **数据库文件**:如Access或SQL Server数据库文件,存储用户信息和微博内容。 - **图片和其他资源**:如图标、背景图片等。 - **配置文件**:存储系统设置,...
### WebView与JavaScript交互相关技术详解 #### WebView与JavaScript概述 - **WebView简介**:WebView是Android SDK中的一个重要组件,它能够加载并展示Web内容。基于WebKit内核的浏览器引擎,WebView能够实现完整...
《HTML+CSS+JavaScript网页制作案例教程》是一门旨在教授学生如何制作网页的专业基础课程,适合计算机相关...通过学习,学生应能独立完成网页的设计和制作,为后续的UI设计和JavaScript网页特效学习打下坚实的基础。
《JavaScript DOM编程艺术(第2版)》是一本非常好的入门书籍,它通过实例讲解如何使用JavaScript控制文档对象模型(DOM),非常适合初学者。此外,“智能社”的JavaScript视频教程也很受欢迎,适合那些希望通过视频...
打地鼠游戏javascript开发代码.docx
#### 二、JavaScript基础概念 - **下载 (Download)** - 过程:指从FTP服务器将文件传输到本地计算机的过程。 - **上传 (Upload)** - 流程:相反过程,即将文件从本地计算机传输到FTP服务器。 - **Cookie** - ...
JavaScript,简称JS,是Web开发领域中最常用的一种脚本语言,尤其在前端开发中占据核心地位。随着技术的发展,JavaScript已经不再局限于简单的网页交互,而是深入到服务器端(Node.js)、移动应用、游戏开发等多个领域...
JavaScript 是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言。JavaScript 可以用来实现网页的动态...
- Selenium RC:它由 Client Libraries 和 Selenium Server 组成,通过 JavaScript 函数集(Selenium Core)控制浏览器行为,支持多种编程语言。 - Selenium Grid:允许并行测试执行,通过集中式主机控制在不同...
- JavaScript是一种轻量级的解释性脚本语言,主要用于网页和网络应用的客户端编程,负责交互逻辑和动态内容的生成。 - JavaScript可以操作HTML元素、处理事件、进行异步通信(Ajax)以及与服务器端进行交互,增强...
* Q2 中关于 JavaScript 语言掌握水平的选择,反映了前端开发者对 JavaScript 语言的掌握水平。 * JavaScript 是一种广泛应用于 Web 开发的脚本语言,用于添加动态效果和交互功能到网页中。 * JavaScript 语言掌握...
ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端Web应用程序。它提供了丰富的组件库,包括表格、表单、菜单、树形结构等,使得开发人员能够创建交互性强、用户体验良好的网页应用。在提供的文档中,可以...
在这个JavaScript猜数字游戏中,我们看到一个简单的HTML页面与内联JavaScript代码结合,用于实现一个基础的用户交互体验。这个游戏的目的是让玩家猜测一个1到50之间的随机数,他们有八次机会来尝试猜出正确的数字。...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,专门用于构建高性能、可扩展的网络应用程序。它的出现打破了JavaScript仅限于前端开发的传统观念,让JavaScript成为了一种全栈开发语言。Node.js的核心特点...
### Android通过JSP连接Oracle数据库的关键知识点 #### 一、技术背景与应用场景 在移动互联网时代,Android应用作为移动端的重要组成部分,其与后端数据库之间的交互变得尤为关键。本案例介绍的是如何通过JSP...
jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及AJAX交互。在这个文档中,我们将深入探讨jQuery的两个重要版本——1.4.2和1.6.2,以及如何在Aptana IDE中利用它们...
- **jQuery**:jQuery是一个JavaScript库,简化了JavaScript的使用,提供了丰富的功能和API。 - **JSON(JavaScript Object Notation)**:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...
在JavaScript部分,可以看到一个jQuery插件`formValidator`被用来处理表单验证。首先,它设置了最小值(1)以确保投资金额非零,并且不允许超过融资剩余投资金额。接着,通过`functionValidator`方法,定义了一个...