《高级程序设计》3 基本慨念

1、javascript区分大小写

2、所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。

  • 第一个字符必须是一个字母、下划线(_)、或一个美元符号$
  • 其他字符可以是字母、下划线(_)、美元符号$或数字。

不能把关键字、保留字、true、false和null作标识符。

3、var操作符定义的变量将成为该变量的作用域中的局部变量,如果在函数中var定义,那么这个变量在函数退出后就会被销毁。

虽然在函数内容省略var操作符可以定义全局变量,但是不推荐。很难维护,由于变量不会马上就有定义导致不必要的混乱,在严格模式下会抛出ReferenceError错误。

4、数据类型:

javascript有5种简单数据类型(也称基本数据类型)UndefinedNullBooleanNumberString

typeof操作符可以检测给定变量的数据类型:

var message="some thing";
alert(typeof message);  //"string"
alert(typeof 95);  //"number"

1)Undefined类型

Undefined类型只有一个值,就是undefined。使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。

对于尚未声明的变量,只能执行一项操作,即typeof检测其数据类型。

so,即便未初始化的变量会自动被赋予undefined值,但显示地初始化变量依然是明智的选择。如果能做到这一点,那么当typeof操作符返回“undefined”值时,我们就知道被检测的变量还没有被声明,而不是尚未初始化。

var message;
alert(message==undefined); //true
alert(age);    //会报错!!!
alert(typeof  message);  //undefined
alert(typeof age);  //undefined

2)Null类型

Null类型也是只有一个值,即null。表示一个空对象指针,所以typeof一个为null值的变量返回的是“object”

alert(null==undefined); //true

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。换句话说,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null和undefined。

3)Boolean类型

Boolean类型只有两个字面值:true和false。如果要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean()

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符 “”(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Objec 任何对象 bull
Undefined 不适用 undefined

4)Number类型

①浮点数值

对于极大或极小的数值,可以用e表示法(即科学计算法)。

浮点数值计算会产生舍入误差问题:浮点数值的最高精度是17位,但在进行算术计算时,其精确度远远不如整数。例如:0.1+0.2的结果不是0.3,而是0.30000000000000004。

so,永远不要测试某个特定的浮点数值

var a=0.1,b=0.2,c=0.15,d=0.15;
alert(a+b);  //0.30000000000000004
alert(c+d); //0.3

②数值范围

javascript能够表示的最小数值保存在Number.MIN_VALUE中,这个值是5e-324;

最大数值保存在Number.MAX_VALUE中,这个值是1.7976931348623157e+308;

在javascript计算中如果得到一个超出javascript数值范围的值,那么这个数值将被自动转换成特殊的Infinity值,即如果这个数值是负数,则被转换为-Infinity(负无穷),如果为正数,则是Infinity(正无穷)

③NaN

时间: 2024-10-24 20:40:47

《高级程序设计》3 基本慨念的相关文章

JavaScript高级程序设计学习(三)之变量、作用域和内存问题

这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于java中涉及到jvm,因此可以自动垃圾回收和内存分配,而不需要手动. 一.变量 每个变量都有其类型,数据类型.在java中分基本数据类型和引用数据类型,js同样如此. 面试题:java的基本数据类型有哪些,及其所占字节?引用类型有哪些? java基本数据类型分别为int(4),float(4),dou

JavaScript高级程序设计之函数

函数实际上是对象,每个函数都是Function类型的实例. 函数是引用类型. 函数名实际上是一个指向函数对象的指针,不会与某个函数绑定. // 这种写法更能表达函数的本质 var sum = function(num1, num2) { return num1 + num2; }; var anotherSum = sum; sum = null; console.log(anotherSum(10, 20)); // 30 console.log(sum(10, 20)); // typeer

javascript高级程序设计--简介

工作一年多了,这一年的收获真是丰富.结识了许多同事朋友,技术网友,学了许多新的技术知识:当然还要感谢我的朋友们,感谢我的第一家公司. 大学主要学的.net,刚毕业那会对javascript的了解几乎就是空白,后来有机会接触了百度地图,开始了javascript学习之路.现在在项目中也能熟练的使用javascript,jquery等技术,可总感觉缺点什么,有些东西你知道是什么,也能写出来,但就是不知道他是什么,他的原理是什么样的.所以才有了现在的想法,系统的学习一遍javascript.---文笔

《Javascript高级程序设计》阅读记录(二):第四章

这个系列之前文字地址:http://www.cnblogs.com/qixinbo/p/6984374.html 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释上我的一些想法.做这个一方面是提升了我的阅读效果以及方便我以后阅读 另一个目的是,Javascript高级程序设计这本书内容很多也很厚,希望其他没有时间的人可以通过看这系列摘录,就可以大体学到书里面的核心内容. 绿色背景的内容是我认为比较值得注意的原著内容.

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(

javascript高级程序设计 第十三章--事件

javascript高级程序设计 第十三章--事件js与HTML的交互就是通过事件实现的,事件就是文档或浏览器窗口中发生的一些特定的交互瞬间. 事件流:事件流描述的是从页面中接收事件的顺序,IE的是事件冒泡流,Netscape的是事件捕获流,这个两个是完全相反的事件流概念. 事件冒泡:由最具体的元素接收,然后逐级向上传播到更高级的节点,即事件沿DOM树向上传播,直到document对象. 事件捕获:不大具体的节点应该更早接收到事件,相当于沿DOM节点树向下级传播直到事件的实际目标,在浏览器中,是

javascript高级程序设计 第十一章--DOM扩展

javascript高级程序设计 第十一章--DOM扩展DOM最主要的扩展就是选择符API.HTML5和Element Traversal Selectors API:定义了两个方法 querySelector() 和 querySelectorAll(),能够基于CSS选择符从DOM中取得元素.querySelector()方法接收一个CSS选择符,返回该模式匹配的第一个元素,querySelectorAll()接收的参数一样,但是返回NodeList实例: matchesSelector()

javascript高级程序设计 第九章-- 客户端检测

javascript高级程序设计 第九章-- 客户端检测 客户端检测是javascript开发中最具争议的一个话题,由于浏览器间存在差别,通常需要根据不同浏览器的能力分别编写不同的代码.有下列常使用的客户端检测方法:能力检测:在编写代码之前先检测特定浏览器的能力.例如,脚本在调用某个函数之前,可能要先检测该函数是否存在.这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上.能力检测无法精确地检测特定的浏览器和版本.怪癖检测:怪癖实际上是浏览器中存

《JavaScript高级程序设计》学习笔记(5)——面向对象编程

欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.前面提到过,ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数.

赠书《JavaScript高级程序设计(第三版)》5本

本站微博上正在送书<JavaScript高级程序设计>走过路过的不要错过,参与方式,关注本站及简寻网+转发微博:http://weibo.com/1748018491/DoCtp6B8r 本站联合简寻网#寻找千里码# 正在送书<javascript高级程序设计>第三版 5本,对这本书期待的朋友可以去参与哦. 关于简寻网: 我们是一群年轻的创业者,我们关注互联网发展,追逐技术的进步.互联网时代的到来,我们希望能通过技术的手段解决生活中的问题.招聘行业是一个传统而又新兴的行业,传统的流