Sorry,前两张介绍的主题还是JavaScript,而第一章介绍了JavaScript和ECMAScript区别,所以前两章介绍的主题应该改为ECMAScript,但是

标题就不改了因为现在人们习惯性称之为JavaScript,所以以后的我会在内容中区分清楚。

好了,那我们这一次的主题就是ECMAScript的高级概念:

1、严格模式

  严格模式是在ECMAScript 5中引入的概念,目的是为ECMAScript中定义一种不同的解析和执行模型,来解决JS中的一些不严谨的行为如:

一条语句的后面没有加;等不严谨但是可用的行为。写法:

    在js文件的开头添加上"use strict";

    或者是在函数内部上方包含这条编译指令:

    function func(){

      "use strict";

    }

2、变量:

  (1)、在函数中使用var定义的变量都是局部变量,不用var定义的都是全局变量如:

  function func(){

    var temp = 0;

  }

  alert(temp);//出现错误

而:

  function func(){

    temp = 10;

  }

  alert(temp);// 10

所以我们在以后的项目编写中一定要注意,var这个占位符的使用。

  (2)、ECMAScript中的简单数据类型:Undefined,Null,Boolean,Number和String,还有一个复杂数据类型Object,

想查看所定义变量的数据类型,可以使用typeOf这个操作符,如 :

  typeOf(true)----boolean;//一下有一个boolean对正表。

  typeOf(10)------number;//

  typeOf(null)-----object;//null只是一个特殊指“null”,表示一个空对象指针,所以我们在声明一个对象的时候建议先给初始化null;var obj = null;

  typeOf(wang)---undefined;//只是一个特殊值"undefined",就是指变量被var声明但是没有初始化

  typeOf('wang')---string;

数据类型 转换为true的值 转化成false的值
String 任何非空字符串 ""(空字符串)
Number 任何非0数字包括无穷大 0或NaN
Object 任何不是Null的对象 null
     
     

  (3)、number:在所有基于IEEE754的数值的浮点计算,那么就不可以测试了和某个特定的浮点数相等,如:

  var a =0.1,b = 0.2;

  if(a+b == 0.3){//这种测试不要做,因为浮点小数想加在IEEE754中会产生误差。

    alert('a加b等于0.3');

  }

  isNaN()方法:可以检测参数是否可以转化为Number类型,并且NaN和任何数都不相等,所以不要用以下方法来判断放回是否为NaN

    var a = 3/0;

    if(a == NaN){//这种判断方式是不正确的

      alert('不合法');

    }

  Number();数值转化方法,规则太罗索了,给出几个例子把:

    Number(false);//0

    Number(null);//0

    Number(undefiined);//NaN

    Number("999xxx");//NaN

    Number("0xf");//15

    Number("abc");//NaN

  parseInt();处理整数,直接看例子:

    parseInt("1234bbb");//1234

    parseInt("");//NaN

    parseInt("0xA",16);//10,推荐使用parseInt的时候都加上转换使用的基数

    parseInt("AF");//NaN

    parseInt("AF",16)//175

  (4)、Object的属性和方法

    Constructor:保存着用于创建当前对象的函数

    hasOwnProperty(propertyName);用于检查指定的属性是否在当前的对象实例中,propertyName必须是以字符串格式出现

    isPrototypeOf(object);用于检查传入的对象是否是另一个对象的原型

    propertyIsEnumerable(propertyName);用于判断给定的属性是否可以用for-in的语句来便利

javascript 高级程序设计 三的更多相关文章

  1. JavaScript高级程序设计(三):基本概念:数据类型

    特别注意:ECMAScript是区分大小写的. 一.变量 1.ECMAScript的变量是松散型的.所谓松散型就是可以用来保存任何类型的数据.即每个变量仅仅是一个用于保存值的占位符而已.定义变量时要使 ...

  2. JavaScript高级程序设计(第三版)学习,第一次总结

    Array类型 var arr = []; arr.length; //返回数组元素个数 改变length可以动态改变数组大小 检测数组 instanceof可以检测某个对象是否是数组,限制:只能是一 ...

  3. JavaScript高级程序设计(第三版)学习笔记20、21、23章

    第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...

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

    本站微博上正在送书<JavaScript高级程序设计>走过路过的不要错过,参与方式,关注本站及简寻网+转发微博:http://weibo.com/1748018491/DoCtp6B8r ...

  5. 《JAVASCRIPT高级程序设计》第三章

    <JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...

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

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

  7. 《Javascript高级程序设计》阅读记录(三):第五章 上

    这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读< ...

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

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

  9. 《Javascript高级程序设计》阅读记录(一):第二、三章

    <Javascript高级程序设计>阅读记录(一) 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释 ...

随机推荐

  1. 处女座与cf-模拟

    链接:https://ac.nowcoder.com/acm/contest/327/B来源:牛客网 题目描述 众所周知,处女座经常通过打cf来调节自己的心情.今天处女座又参加了一场cf的比赛,他知道 ...

  2. 微信小程序---模版

    微信小程序用的是否娴熟,会灵活使用模版很重要. 新建一个template文件,做一个step模版. <template name="top"> <view cla ...

  3. zabbix 利用python脚本实现钉钉告警

    Zabbix 利用python脚本实现钉钉告警 1.安装python3.6环境 2.创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts ...

  4. metasploit framework(十五):弱点扫描

    openvas扫描生成NBE格式的日志 改个比较好记的文件名 将日志导入到msf进行后续操作,导入之前查看一下hosts和services 导入nbe格式的文件 查看漏洞弱点 msf直接调用nessu ...

  5. SOA 是什么

    SOA 英文:Service-Oriented Architecture,面向服务的架构. 是一种面向通用集成服务的.松耦合的架构实现方式,是web时代服务发展的产物: 使用"分层" ...

  6. android 区分wifi是5G还是2.4G(转)

    http://bbs.csdn.net/topics/391033966?page=1 我一开始看这帖子,找不到答案,为了后来的人,我来回复吧.WifiManager wifiManager = (W ...

  7. 反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    枚举 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象.这种实例有限而且固定的类,在Java里被称为枚举类. 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编 ...

  8. 将秒数转为HH:MM:SS格式的时间

    /**  * 将秒数转为HH:MM:SS格式的时间  * @param $seconds  * @return string  */ public static function GetHHMMSSB ...

  9. white-space和word-wrap和word-break所表示的换行和不换行的区别

    一.前言 使得文本换行有很多方式, <br/>标签元素,能够强制使得所在位置文本换行 <p>元素,<div>设定宽度,都可以对文本内容实现自适应换行 对于长单词或者 ...

  10. [剑指Offer]35-复杂链表的复制

    链接 https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&tqId=11178&tPa ...