`
zhouyrt
  • 浏览: 1172308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript碎碎念

阅读更多

一,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);
}
 

 

3
0
分享到:
评论
1 楼 lipeng88213 2010-09-27  
把楼主的博客基本上看了个遍 呵呵 感觉写的真的很好 学到了很多知识 很感谢楼主 看了好所文章 就想问楼主一个问题 楼主一般JavaScript都看什么书 能不能推荐基本楼主看过的不错的书

相关推荐

    javascript程序设计实验1.docx

    JavaScript 程序设计实验 1 本实验旨在让学生熟悉 JavaScript 的基本概念和应用,包括变量、表达式、运算符、对话框、函数和程序设计等方面。通过本实验,学生将掌握 JavaScript 的基本语法和应用,提高网页设计和...

    基于ASP的简洁碎碎念简单的轻微博系统v1.1.zip

    3. 静态资源:如HTML、CSS和JavaScript文件,构成了用户界面和交互效果。 4. 图片和其他媒体文件:用户上传的图片或音频文件等。 5.配置文件:如config文件,存储系统设置和连接信息。 综上所述,这个基于ASP的轻...

    ASP源码—简洁碎碎念简单的轻微博系统v1.1.zip

    - **JavaScript文件**:实现客户端的交互效果和验证。 - **数据库文件**:如Access或SQL Server数据库文件,存储用户信息和微博内容。 - **图片和其他资源**:如图标、背景图片等。 - **配置文件**:存储系统设置,...

    webview与javascript交互相关技术.docx

    ### WebView与JavaScript交互相关技术详解 #### WebView与JavaScript概述 - **WebView简介**:WebView是Android SDK中的一个重要组件,它能够加载并展示Web内容。基于WebKit内核的浏览器引擎,WebView能够实现完整...

    《HTML+CSS+JavaScript网页制作案例教程》_教学大纲.docx

    《HTML+CSS+JavaScript网页制作案例教程》是一门旨在教授学生如何制作网页的专业基础课程,适合计算机相关...通过学习,学生应能独立完成网页的设计和制作,为后续的UI设计和JavaScript网页特效学习打下坚实的基础。

    html、css、javascript、php、mysql的学习顺序是什么?.docx

    《JavaScript DOM编程艺术(第2版)》是一本非常好的入门书籍,它通过实例讲解如何使用JavaScript控制文档对象模型(DOM),非常适合初学者。此外,“智能社”的JavaScript视频教程也很受欢迎,适合那些希望通过视频...

    打地鼠游戏javascript开发代码.docx

    打地鼠游戏javascript开发代码.docx

    html,javascript, php简答题.docx

    #### 二、JavaScript基础概念 - **下载 (Download)** - 过程:指从FTP服务器将文件传输到本地计算机的过程。 - **上传 (Upload)** - 流程:相反过程,即将文件从本地计算机传输到FTP服务器。 - **Cookie** - ...

    js高级学习 js高级面试

    JavaScript,简称JS,是Web开发领域中最常用的一种脚本语言,尤其在前端开发中占据核心地位。随着技术的发展,JavaScript已经不再局限于简单的网页交互,而是深入到服务器端(Node.js)、移动应用、游戏开发等多个领域...

    Html实训报告.docx

    JavaScript 是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言。JavaScript 可以用来实现网页的动态...

    [全]selenium自动化测试与前端技术简介.docx

    - Selenium RC:它由 Client Libraries 和 Selenium Server 组成,通过 JavaScript 函数集(Selenium Core)控制浏览器行为,支持多种编程语言。 - Selenium Grid:允许并行测试执行,通过集中式主机控制在不同...

    网络编程基础经典.doc.docx

    - JavaScript是一种轻量级的解释性脚本语言,主要用于网页和网络应用的客户端编程,负责交互逻辑和动态内容的生成。 - JavaScript可以操作HTML元素、处理事件、进行异步通信(Ajax)以及与服务器端进行交互,增强...

    java web 前端开发技术调查问卷.docx

    * Q2 中关于 JavaScript 语言掌握水平的选择,反映了前端开发者对 JavaScript 语言的掌握水平。 * JavaScript 是一种广泛应用于 Web 开发的脚本语言,用于添加动态效果和交互功能到网页中。 * JavaScript 语言掌握...

    Extjs+java+sql数据库.docx

    ExtJS 是一个流行的JavaScript框架,主要用于构建富客户端Web应用程序。它提供了丰富的组件库,包括表格、表单、菜单、树形结构等,使得开发人员能够创建交互性强、用户体验良好的网页应用。在提供的文档中,可以...

    js猜数字游戏,html脚本,就是编程,js基础.docx

    在这个JavaScript猜数字游戏中,我们看到一个简单的HTML页面与内联JavaScript代码结合,用于实现一个基础的用户交互体验。这个游戏的目的是让玩家猜测一个1到50之间的随机数,他们有八次机会来尝试猜出正确的数字。...

    Node.js-一种新的Web应用构建技术.docx

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,专门用于构建高性能、可扩展的网络应用程序。它的出现打破了JavaScript仅限于前端开发的传统观念,让JavaScript成为了一种全栈开发语言。Node.js的核心特点...

    Android通过jsp连接Oracle数据库 -- 实例.docx

    ### Android通过JSP连接Oracle数据库的关键知识点 #### 一、技术背景与应用场景 在移动互联网时代,Android应用作为移动端的重要组成部分,其与后端数据库之间的交互变得尤为关键。本案例介绍的是如何通过JSP...

    jquery.1.6.2.sdocml&jquery.1.4.2.sdocml

    jQuery 是一个广泛使用的JavaScript库,它极大地简化了JavaScript的DOM操作、事件处理、动画设计以及AJAX交互。在这个文档中,我们将深入探讨jQuery的两个重要版本——1.4.2和1.6.2,以及如何在Aptana IDE中利用它们...

    web是什么.docx

    - **jQuery**:jQuery是一个JavaScript库,简化了JavaScript的使用,提供了丰富的功能和API。 - **JSON(JavaScript Object Notation)**:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    正则表达式大于50万的判断js与php写法.docx

    在JavaScript部分,可以看到一个jQuery插件`formValidator`被用来处理表单验证。首先,它设置了最小值(1)以确保投资金额非零,并且不允许超过融资剩余投资金额。接着,通过`functionValidator`方法,定义了一个...

Global site tag (gtag.js) - Google Analytics