`
babysuperman
  • 浏览: 1957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

JavaScript基础知识

 

1.数据类型(data type)

 

JavaScript是一门动态语言,类型由赋予的值决定的,同一个变量可以指向不同的类型的值。例如:

var a = 1; // a 是Number类型的
a = 'bar'; // a 变成String类型的

 那如何确定一个变量的类型呢,利用tpyeof操作符。例如:

var a = 1;
typeof a // 'number'
a = 'bar'; 
typeof a// 'string'

 但是在JavaScript中数组是一个Object,所以

var a = ['a', 'b', 'c'];
typeof a // 'object'

 如果需要的到精确的类型,如‘array'、'regexp'、'date'等,可以使用JavaScript的library提供的方法。如jQuery中的type方法

 

2.引用(reference)

 

JavaScript中通过一个变量指向一个实际的对象来操作该对象。例如:

var obj = new Object();
obj.name = 'Ann';
alert(obj.name);//'Ann'

 如果多个变量指向同一个实际的对象,那么一个变量改变该实际对象,其他的变量也会相应改变。例如:

var obj = new Object();
var objRef = obj;
obj.name = 'Ann';
alert( objRef.name == 'Ann' );//true

 在JavaScript中变量永远指向一个实际的对象,而不指向其他引用。有一些看似违背了该原则的情况,例如:

var str = 'abc';
var strRef = str;
strRef += 'd';
alert( str ); //'abc'
alert( strRef == str ) //false

 因为字符串的连接操作会生成新的字符串对象而非原来的字符串对象。

 

3.作用域(scope)

 

JavaScript是函数作用域,即以function来划分作用域的,这点对于习惯使用C、Java等块作用域的程序员比较不适应。例如:

if( true ) {
    var i = 2;
}
alert(i);//2

 

4.简便写法

 

在JavaScript的代码中常见的一些简便写法有:

1>参数默认值

fuction foo( bar ) {
    bar = bar || 'default'; //当bar没有传入,默认是'default'
}

 2>对象检测法

if(document && document.getElementById && document.getElementsByTagName && docuemnt.body) {
    alert('DOM is already loaded.');//DOM 加载完毕的检测
}

 在&&操作符的执行顺序是从左到右,如果左操作数为false,则直接返回false,而不会再检查右操作数。

3>减少if写法的方式

第一种方法: 利用 ? : 三元操作符, 例如:

var x = 2 > 1 ? 'yes' : 'no';
alert(x); // 'yes'

 第二种方法:使用{}对象来表示关联,例如:

var funcObj = {
    a: function() { return 'a'; },
    b: function() { return 'b'; }
};
alert( funcObj.b ); // 'b'

 其他的JavaScript简写方法还有很多,目的都是为了代码的整洁性和可重用性(clean and reusable)。

 

小结:JavaScript是一门非常灵活的语言,本文介绍了类型、引用、作用域和一些常见的简便写法几个方面,只要努力,语言本身还是比较简单的,当然最好的学习方式就是实践,make your hands dirty!

 

PS:推荐一个JavaScript Tips

 

分享到:
评论

相关推荐

    高效Web前端开发之路

    本书共分三篇13章,第一篇作为全书的开篇,简要介绍了Web开发的各种理论基础,包括HTML、CSS以及JavaScript等。还将通过翔实的理论介绍面向对象的程序设计思路与Web开发之间的关系。第二篇作为本书内容的核心,介绍...

    PROFESSIONAL JavaScript® for Web Developers(Third Edition.2012).pdf

    - **函数作为第一类公民**:第七章强调了JavaScript中函数的重要性,将其视为“第一类公民”,可以被赋值给变量、作为参数传递或作为返回值返回。 - **高级特性**:书中还探讨了一些高级特性,比如高阶函数、递归...

    Loiane Groner Learning JavaScript Data Structures and Algorithms

    本书开篇便为读者提供了一个关于JavaScript的快速概览,旨在帮助读者快速了解JavaScript的基础知识,并为后续深入学习打下基础。 - **JavaScript 数据结构与算法**:书中将详细介绍如何利用JavaScript实现各种数据...

    69程序员练级攻略(2018):开篇词1

    入门篇是所有程序员成长之路上的第一步。对于初学者来说,选择合适的学习路径至关重要。在这篇文章中,作者推荐初学者从Python和JavaScript开始学习。Python以其简洁明了的语法和强大的标准库,成为了很多初学者的第...

    Building iPhone Apps with HTML, CSS, and JavaScript Jan 2010

    #### JavaScript基础 JavaScript是一种强大的脚本语言,用于实现网页的交互性和动态效果。书中将教授如何使用JavaScript处理用户输入、操作DOM(Document Object Model)、响应事件和执行异步请求。 总之,《使用...

    HTML5 CSS3网站设计基础教程(第2版)-教学大纲.docx

    学生将从HTML5的特性出发,学习如何创建具有语义化结构的第一个HTML5页面,掌握新元素如`section`、`footer`等的使用,以及`details`、`summary`等交互元素的应用,这些都是现代网页设计不可或缺的基础元素。...

    2010网页制作设计

    首先,"第1章(终稿).ppt"很可能是课程的开篇,可能会讲解网页制作的基础概念。在这一章中,我们通常会学习到网页的起源与发展,网页的基本组成元素,比如HTML标记语言的结构,如何使用头部(head)、主体(body)等...

    JQuery教程-从零开始学习jQuery

    ”,这也标志着你已经迈出了学习JQuery的第一步。 #### 结语 本文作为JQuery教程的开篇,介绍了JQuery的基本概念、特性以及一个简单的示例。接下来的文章将会深入探讨JQuery的各种高级功能,包括AJAX开发等内容。...

    最新2015毕业季论文答辩开题报告通用模板.ppt

    **第一章 选题背景** 在这一章中,学生需要详细描述论文的主题是如何选择的,以及为什么选择这个主题。背景概述应该包括该领域的国内外现状,存在的问题或挑战,以及研究的重要性。此外,学生可以在此部分简要介绍...

    Node.js.in.Action 最终版

    ### Node.js in Action 最终版...它不仅涵盖了Node.js的基础知识,还深入探讨了如何使用Node.js构建高性能的Web应用程序。对于希望深入了解Node.js技术栈并将其应用于实际项目的开发者来说,本书是不可多得的宝贵资源。

    李炎恢 bootstrap 课件及代码

    首先,"第1章 Bootstrap介绍.pdf"可能是课程的开篇,它会涵盖Bootstrap的基本概念、发展历程以及为何选择Bootstrap作为前端开发框架的原因。在这一章中,你可能会学到Bootstrap的核心特性,如网格系统、组件库、...

    《网页制作与设计》立体化电子课件

    1. **第1章 网页与网站**:这一章主要介绍了网页和网站的基本概念,包括网页的构成元素、网站的结构以及不同类型网站的特点。同时,也会涉及网页设计的原则和用户体验的重要性,为后续的学习打下基础。 2. **第2章 ...

    Pro Angular 6, 3rd Edition

    书中不仅包含了基础知识,还有大量的实践案例和常见问题解决方案,非常适合想要深入了解Angular 6的读者。 综上所述,《Pro Angular 6, 第三版》是一本全面覆盖Angular 6核心概念和技术细节的专业书籍,对于希望在...

    jsp入门教程 新手必看

    - **开篇第一个JSP**:通过创建并运行一个简单的JSP文件,理解JSP的基本语法和执行流程。 - **B/S结构**:讲解客户端(Browser)与服务器(Server)之间的请求与响应机制,这是Web开发的核心。 - **中文乱码解决方案...

    2022大学计算机专业学生职业规划.docx

    文章开篇即点明了一个普遍存在的现象:许多计算机专业学生,缺乏对未来职业的明确规划和学习的动力。作者自述,最初选择计算机专业是源于对IT行业的热爱,以及对电脑技术的好奇与兴趣。反观许多学生,他们或因父母之...

Global site tag (gtag.js) - Google Analytics