本章主要介绍Javasript语言的一些语法:

  1.严格模式:开启:"use strict";

  2.变量:全部用var来定义,在函数中使用的称为局部变量,不能全局使用。

  3.数据类型:undefined,null,boolean,number,string,object。不可以定义自定义类型。

   1)使用typeof操作符返回变量的数据类型。

   2)Boolean类型:

     使用Boolean()函数可以把各种数据类型转换成布尔值,转换规则有:

     (1)如果是String 非空字符串 true 空字符串 false

     (2)如果是Number,非零数组,包括无穷大 true  0和NaN false

     (3)如果是Object,任何对象 true  null false

     (4)undefined  n/a  undefined false

    注意:undefined == null 是true ,但是有区别:undefined 是默认的,如果未定义的变量是对象的话,就一定要定义为null。

   2)关于浮点数,因为存在精度问题,所以不要试图对一个浮点数做比较。

     数值范围的问题:在ECMAScript中,最小值是Number.MIN_VALUE,最大值是Number.MAX_VALUE.超出范围显示Infinity。可以用isFinite()函数判断是否在范围之间。

     数值转换:用于把非数值转换为数值:Number() parenInt() parseFloat() 第一个函数用于把任何数据类型转化。后两个适用于字符串。

    Number()函数有以下转换:如果是  布尔型,转1或0.  数值 直接转出。  null值,转出0.  undefined,转出NaN。  字符串的话,如果只有数字转出,如果有字符,转出NaN。  如果是空的,转出0.

    parsenInt()函数有以下转换:看第一个字符是不是数字来决定是否转出。关于进制的问题,提供第二个参数是进制数。

    parsenFloat()函数有以下转换:它在转换的时候只适用于十进制,所以碰到十六进制数据会转出0.

   3)任何一个字符串的长度都可以通过object.length输出。

    注意:字符串变量在创建之后就不能再赋值,除非在后面通过+运算符连接增加。

    把一个数据类型(NULL和undefined除外)数值,布尔型,对象,字符串都可以通过toString()方法转换成字符串。这个方法可以通过传入数字基数来改变进制。 一个通用的函数是String()函数,如果是NULL和 undefined,则原样返回,其他类型按toString()方法返回。

   4)object类型:创建自定义对象:  var o = new Object();

    Object对象有一些通用的属性。具体查看文档。

  4.位操作符:

   1)按位非: var num = 25 ; var num2 = ~num1 ;

      按位非的本质:操作时的负值-1。  

   2)按位与: var result = 25 & 1 ;

   3) 按位或: var result = 25 | 1 ;

   4)按位异或: var reslut = 25 ^ 1 ;

   5)左移: var oldValue = 5 ;

       var newValue = oldValue << 5 ;

   6)右移: >>

   5)无符号右移: >>>

  5.布尔操作符

    1)逻辑非:!

      如果是一个对象,返回false;

      如果是一个空字符串,返回true;

      如果是一个非空字符串,返回false;

      如果是数值0,返回true;

      如果是任意非0,包括Infinity,返回false;

      如果是null,返回true;

      如果是NaN,返回true;

      如果是undefined,返回true。

     2)逻辑与:&&

      注意:逻辑与操作可以应用与任何类型的操作数,如果有一个操作数不是布尔值的情况,遵循以下规则:

      如果第一个操作数是对象,则返回第二个操作数。

      如果第二个数是对象,在第一个操作数求值结果是true的情况下返回该对象。

      如果两个操作时都是对象,则返回第二个对象。

      如果有一个操作数是NULL,则返回NULL。

      如果有一个操作数是NaN,则返回NaN。

      如果有一个操作数是undefined,则返回undefined。

      逻辑与属于短路操作,意思就是当逻辑判断的时候第一个判断为false的时候就不在去判断第二个了。

    3)逻辑或:||

      如果第一个操作数是对象,则返回第一个操作数。

      如果第一个操作数的求值结果为false,则返回第二个操作数。

      如果两个操作数都是对象,则返回第一个操作数。

      如果两个操作数都是null,则返回null。

      如果两个操作数都NaN,则返回null。

      如果两个操作数都undefined,则返回undefined。

      逻辑或属于短路操作,意思就是当逻辑判断的时候第一个判断为true的时候就不在去判断第二个了。

      注意:我们可以通过这个逻辑或的行为避免为变量赋null或undefined值。例如:

      var myObject = preferredObject || backupObject ;

      如果前者是null,它的值返回给myObejct,否则返回后者。

      

《avascript 高级程序设计(第三版)》 ---第三章 基本概念的更多相关文章

  1. JavaScript高级程序设计 第三章 基本概念

    ch3 基本概念 标签(空格分隔): JavaScript 语法 标识符 - 第一个字符必须是字母.下划线或美元 - 驼峰大小写格式 严格模式 ECMAScript5引入,定义了一种解析和执行模型.此 ...

  2. javascript高级程序设计第三章

    看后总结: 1.区分大小写 2.标识符是有字母下划线$开头,并有字母.下划线.数字.美元符号组成. 3.建议用驼峰法命名标识符. 4.注释: 单行:// 多行: /*   */ 5.严格模式: 在js ...

  3. Javascript高级程序设计 -- 第三章 -- 总结

    1.Javascript有几种数据类型 2.变量 Javascript有几种数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Nu ...

  4. 读书笔记 - js高级程序设计 - 第三章 基本概念

    启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰  是一个重要原则 5种简单数据类型 Undefined Null Boolean Num ...

  5. javascript高级程序设计第三章的一些笔记

    [TOC] 1. 语法 1.1 区分大小写 变量.函数名和操作费都区分大小写. 1.2 标识符 标识符指变量.函数.属性的名字,或者函数的参数.标识符按以下规则组合: 第一个字符必须是一个字母,下划线 ...

  6. JavaScript高级程序设计第三版.CHM【带实例】

    从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...

  7. 《JavaScript高级程序设计》——第二章在HTML使用JavaScript

    这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...

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

    这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...

  9. JavaScript高级程序设计第三版-读书笔记(1-3章)

    这是我第一次用markdown,也是我第一次在网上记录我自己的学习过程. 第一章 JavaScript主要由以下三个不同的部分构成 ECMAScript   提供核心语言功能 DOM     提供访问 ...

  10. 读书时间《JavaScript高级程序设计》三:函数,闭包,作用域

    上一次看了第6章,面向对象.这里接着看第7章. 第7章:函数表达式 定义函数有两种方式:函数声明.函数表达式 //函数声明 function functionName(arg0,arg1,arg2){ ...

随机推荐

  1. 2016.6.21 -Dmaven.multiModuleProjectDirectory system propery is not set,Check $M2_HOME environment variable and mvn script match.

    eclipse中使用maven插件的时候,运行run as maven build的时候报错: -Dmaven.multiModuleProjectDirectory system propery i ...

  2. spring boot 读取配置文件(application.yml)中的属性值

    在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...

  3. CentOS---网络配置具体解释

    一.配置文件具体解释 在RHEL或者CentOS等Redhat系的Linux系统里.跟网络有关的主要设置文件例如以下: /etc/host.conf         配置域名服务client的控制文件 ...

  4. Web开发框架 SSH 简介

    Struts 是一个很好的MVC框架,主要技术是Servlet和Jsp.Struts的MVC设计模式可以使我们的逻辑变得很清晰,让我们写的程序层次分明. 官方地址:http://struts.apac ...

  5. C++的双重检查锁并不安全(转)

    一个典型的单例模式构建对象的双重检查锁如下: static Singleton * getSingleObject() { if(singleObject==NULL) { lock(); if(si ...

  6. Web安全系列(四):XSS 的防御

    简介 XSS 的防御很复杂,并不是一套防御机制就能就解决的问题,它需要具体业务具体实现. 目前来说,流行的浏览器内都内置了一些 XSS 过滤器,但是这只能防御一部分常见的 XSS,而对于网站来说,也应 ...

  7. 【Wechall.net挑战】Anderson Application Auditing

    Wechall.net是一个国外用于练习CTF和攻防的网站,国内资料writeup不多,只有个别几篇.作为小白,近日玩了几道有意思的题目,在此分享 题目地址:http://www.wechall.ne ...

  8. 关于C++项目指针对象未被初始化的问题(0xcdcdcd)

    http://blog.csdn.net/devfun/article/details/6900086 昨天我试图将一个封装好的模块加入到正在开发的项目中,这个模块不是单独的类,而且对应的声明和实例. ...

  9. wifi认证Portal开发系列(一):Radius与FreeRadius简介

    RADIUS 维基百科上的介绍: Remote Authentication Dial-In User Service (RADIUS) is a networking protocol that p ...

  10. c# .net Global.asax文件的作用

    1 Global.asax文件的作用 先看看MSDN的解释,Global.asax 文件(也称为 ASP.NET 应用程序文件)是一个可选的文件,该文件包含响应 ASP.NET 或HTTP模块所引发的 ...