`
weigang.gao
  • 浏览: 467420 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

JavaScript基本概念(2)

 
阅读更多

1.区分大小写

ECMAScript中的一切(变量,函数名和操作符)都区分大小写。这也就意味着,变量名test和变量名Test分别表示两个不同的变量,而函数名不能使用typeof,因为它是一个关键字,但typeOf则完全可以是一个有效的函数名

 

2.标识符

所谓标识符,就是指变量,函数,属性的名字,或者函数的参数。标识符可以是按照下列格式规则组合起来的一或多个字符:

<!--[if !supportLists]-->a.<!--[endif]-->第一个字符必须是一个字母,下划线(_)或一个美元符号($) ;

<!--[if !supportLists]-->b.<!--[endif]-->其他字符可以是字母,数字,下划线或美元符号($)

标示符中的字母

 

3. Number类型

Number类型应该是ECMAScript中最令人关注的数据类型了,这种类型使用IEEE754格式来表示整数和浮点数值(浮点数值在某些语言中也被称为双精度数值)。为支持各种数值类型,ECMA-262定义了不同的数值字面量格式。

 

在进行算数计算时,所有以八进制和十六进制表示的数值最终都将被转换成十进制数值。

 

由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。

var num1 = 10.0;//此浮点数会转换成整数值来存储

 

NaN

NaN,即非数值(Not a Number)是一个特殊的数值(可以用alert(typeof NaN ); 返回”number”),这个数值用于表示一个本来应该返回一个数值却未返回一个数值的情况(这样就不会抛出错误了)Eg:在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在ECMAScript中任何数值除以0会返回NaN,因此不会影响其他代码的执行。

NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(eg:NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。Eg:  alert(NaN == NaN) ;     //false

针对NaN的这两个特点,ECMAScript定义了isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们定义这个参数是否不是数值IsNaN()在接受到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,eg:字符串”10”Boolean。而任何不能被转换为数值的值都将会导致这个函数返回true

alert(isNaN(“10”));//false,字符串”10”可以转换成数字10

alert(isNaN(true));//false,Booleantrue可以转换为数值1Booleanfalse可以被转换成0

 

数值转换

3个函数可以把非数值转换为数值:Number(), parseInt()parseFloat()。第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专用于把字符串转换成数值

 

 

在使用parseInt()是最好指定基数,这个可以避免ECMAScript 3ECMAScript 5的分歧。Eg:

ECMAScript 3中,parseInt(“070”);//56(八进制)

ECMAScript5中,parseInt(“070”);//0,因为在ECMAScript5 Javascript引擎中,parseInt()已经不具有解析八进制的能力,因此签到

 

parseFloat()只解析十进制值,因此它没有用第二个参数指定基数的用法。另外,如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后都是零)parseFloat()会返回整数(整数所需的存储空间是浮点数所需的存储空间的一半),以下是使用parseFloat()转换数值的几个典型示例。

 var num1 = parseFloat(“0xA”);//0, 十六进制格式字符串始终被转换成0

 var num2 = parseFloat(“0908.5”);//908.5

 

4. String类型

String类型用于表示由零或多个16Unicode字符组成的字符序列,即字符串。字符串可以由双引号(“)或单引号(‘)表示,因此下面两个字符串的写法都是有效的:

var firstName = “gaoweigang”;//以双引号开头的字符串必须以双引号结尾

var lastName = ‘gaoweigang’;//以单引号开否的字符串必须以单引号结尾

 

如果字符串中包含双字节字符,那么length属性可能不会精确地返回字符串中的字符数目。

 

 

字符串的特点

ECMAScript中的字符串是不可变,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量,eg

   var lang = “java”;

   lang = lang + “script”;

以上示例中的变量lang开始时包含字符串”java”。而第二行代码把lang的值重新定义为”java””script”的组合,即”javascript”。实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串

 

5. Object类型

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建,而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象,如下所示:

var o = new Object();

ECMAScript中,如果不给构造函数传递参数,则可以省略后面的那一对圆括号。Eg

var o = new Object;//有效,但不推荐省略圆括号

仅仅创建Object的实例并没有什么好处,但关键是要理解一个重要的思想:即在

ECMAScript(就像Java中的java.lang.Object对象一样)Object类型是所有其他的实例的基础。换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。

 

       从技术角度讲,ECMA-262中对象的行为不一定适用于JavaScript(ECMA-262只是JavaScript的核心部分,并不是全部)中的其他对象。浏览器环境中的对象,比如BOMDOM中的对象,都属于宿主对象,因为它们是由宿主实现提供和定义的。ECMA-262不负责定义宿主对象,因此宿主对象可能会也可能不会继承Object

 

6.函数

       return语句也可以不带任何返回值。在这种情况下,函数在停止执行后将返回undefined值。这种用法一般用在需要提前停止函数执行而又不需要返回值的情况下。

ECMAScript函数的参数与大多数其他语言中的函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。可以传递一个,三个甚至不传递参数,而解析器永远不会有什么怨言。之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没有问题。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。

命名的参数只提供便利,但不是必须的。另外,在命名参数方面,其他语言可能需要事先创建函数签名,而将来的调用必须与该标签名一致。

关于arguments的行为,还有一点比较有意思。那就是它的值永远与对应命名参数的值保持同步,修改arguments的值会影响相应的命名参数的值。但是它们(arguments与命名参数)内存空间是独立的,这种影响是单向的:修改命名参数不会改变arguments中对应的值。

arguments对象的长度是由传入参数个数决定的,不是有定义函数时的命名参数的个数决定的

eg:

 function test(num1, num2){

   arguments[1] = 20;

   alert(num2);//undefined,因为只传递了一个参数

   alert(arguments[1]);//20;

}

test(10);//只传一个参数,那么arguments的长度就为1

注意:ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数。

Problem:

javaScript中,为什么0.1+0.2 不等于0.3

分享到:
评论

相关推荐

    JAVASCRIPT基本概念[整理].pdf

    JAVASCRIPT基本概念[整理].pdf

    JavaScript核心概念及实践 高清PDF扫描版 (邱俊涛).pdf

    第2章 基本概念 第3章 对象 第4章 函数 第5章 数组 第6章 正则表达式 第7章 闭包 第8章 面向对象的JavaScript 第9章 函数式的JavaScript 第10章 核心概念深入 第11章 客户端的JavaScript 第12章 客户端的...

    JavaScript基本应用

    1. Javascript的基本概念 2 2. Javascript中函数的使用 3 3. Javascript中的对象 4 4. JavaScript中的行为 5 二、 Javascript中的时间对象 6 1. 时间对象的方法(从0开始) 6 2. 时间对象的实际应用 6 三、 ...

    JavaScript基本概念初级讲解论坛贴的学习记录

    JavaScript基本概念 论坛贴建议大家看下,都是一些js的高级的技巧知识小结。

    javascript-cheatsheet:了解JavaScript的基本术语,概念和语法

    这是JavaScript基本概念的备忘单。 开始学习JavaScript的基本概念,语法,术语和不同的构造。 奖励:第14节的单页DOM API速查表 想正确学习JavaScript吗? iLoveCoding Pro会员。 我呈现给您-JavaScript备忘单 :...

    精通javascript+jQuery

    主要内容包括JavaScript的概念和基本语法、CSS基础、CSS排版、DOM模型框架、网页中的事件、表格表单、JavaScript的调试与优化、Ajax异步技术等。在此基础之上又通过精彩的实例详细讲解了jQuery的相关技术:主要包括...

    javascript完全学习手册2 源码

    第2章 JavaScript编程基础 2.1 基础语法 2.1.1 数据类型 2.1.2 变量和常量 2.1.3 表达式 2.1.4 运算符 2.2 流程控制 2.2.1 条件语句r 2.2.2 循环语句 2.2.3 其他语句 2.3 使用对话框 2.3.1 警告...

    Google V8学习手记,月javascript写服务器端是多少人的梦醒呀,Google v8让javascript和php一样

     2.1 v8的基本概念  2.2 从HelloWorld开始  2.3 在C++中访问Javascript的变量及函数   2.4 在Javascript中访问C++全局函数及变量  2.5 在C++中“声明”“Javascript类”, 供Javascript实例化  2.6 封装完整的...

    js-code-snippets:学习基本JavaScript概念

    了解实际JavaScript基本概念。 :high_voltage: 对于初学者和中级! 贡献者指南 如果您不熟悉Git和Github,建议您先进行然后再继续下一步。 在分叉存储库 克隆分叉存储库 $ git clone ...

    JavaScript入门篇,JavaScript基础知识

    学习JavaScript的第一步是理解其语法和基本概念。这包括了学习如何创建JavaScript代码块,熟悉JavaScript的基本对象,了解语法规则和数据类型,以及掌握流程控制与错误处理的方式。此外,对于初学者来说,一些优质的...

    javascript完全学习手册1 源码

    1.1.2 JavaScript的基本特点 2 1.1.3 常用的Web开发语言 3 1.2 JavaScript的应用 4 1.2.1 客户端应用 5 1.2.2 服务器端应用 5 1.3 在Web页面中使用JavaScript 5 1.3.1 HTML的基本结构 5 1.3.2 在HTML中嵌入...

    Introducing ArcGIS API 4 for JavaScript.pdf

    用于JavaScript的ArcGISAPI第4版引入了新的模式和基本概念,包括3D映射功能。您将学习使用API的基本知识,以便最大限度地利用它。在介绍关键概念和不同组件如何协同工作的同时,您还将了解如何利用内置于API中的...

    javascript核心

    1.2 JavaScript内核系列 第2章 基本概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3 JavaScript内核系列 第3章 对象与JSON . . . . . . . . . ...

    2024高频前端面试题 JavaScript

    目标是帮助读者建立对JavaScript面试的基本理解,为后续的面试准备和实际面试打下坚实的基础。 【其他说明】 文章采用通俗易懂的语言,避免了复杂的编程术语,使得初学者也能轻松理解。同时,文章还提供了实际面试中...

    新手必须知的Node.js 4个JavaScript基本概念

    本文介绍了4个基本JavaScript概念,它是你学习node.js所必需要掌握,下面就让我们来看一下具体是哪4个基本JavaScript概念

    JavaScript和jQuery实战手册-麦克法兰.pdf

    本书的最大特色就是内容系统且全面:从JavaScript的基本概念,到Web最流行的JavaScript库——jQuery,再到构建Web功能;从JavaScript各组件和服务的使用,到jQuery和Ajax等开发工具的应用,再到Web应用程序的发布;...

    JavaScript内核之基本概念

    由于JavaScript中的“一切皆对象”,在掌握了这些基本的概念之后,读者就可以较为轻松的理解诸如作用域,调用对象,闭包,currying等等较难理解的概念了。 数据类型 有程序设计经验的读者肯定知道,在C或者Java这样...

    JavaScript学习指南(第2版).pdf

    《JavaScript学习指南(第2版)》通过列举JavaScript应用的最佳实践和示例,本书展示了如何将该语言集成到浏览器环境中,及如何在符合标准的网站中应用这些已通过实践验证的编码技术。 本书内容: ● JavaScript应用...

    JavaScript零基础入门到精通视频教程

    第08节 面向对象-基本概念\JavaScript视频课程-第08节 面向对象-基本概念 第09节 面向对象-自定义对象\JavaScript视频课程-第09节 面向对象-自定义对象 第10节 面向对象-类与对象(上)\JavaScript视频课程-第10节 ...

Global site tag (gtag.js) - Google Analytics