javascript 高级程序设计 三
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 高级程序设计 三的更多相关文章
- JavaScript高级程序设计(三):基本概念:数据类型
特别注意:ECMAScript是区分大小写的. 一.变量 1.ECMAScript的变量是松散型的.所谓松散型就是可以用来保存任何类型的数据.即每个变量仅仅是一个用于保存值的占位符而已.定义变量时要使 ...
- JavaScript高级程序设计(第三版)学习,第一次总结
Array类型 var arr = []; arr.length; //返回数组元素个数 改变length可以动态改变数组大小 检测数组 instanceof可以检测某个对象是否是数组,限制:只能是一 ...
- JavaScript高级程序设计(第三版)学习笔记20、21、23章
第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...
- 赠书《JavaScript高级程序设计(第三版)》5本
本站微博上正在送书<JavaScript高级程序设计>走过路过的不要错过,参与方式,关注本站及简寻网+转发微博:http://weibo.com/1748018491/DoCtp6B8r ...
- 《JAVASCRIPT高级程序设计》第三章
<JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...
- JavaScript高级程序设计学习(三)之变量、作用域和内存问题
这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...
- 《Javascript高级程序设计》阅读记录(三):第五章 上
这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读< ...
- JavaScript高级程序设计第三版.CHM【带实例】
从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...
- 《Javascript高级程序设计》阅读记录(一):第二、三章
<Javascript高级程序设计>阅读记录(一) 这个系列,我会把阅读<Javascript高级程序设计>之后,感觉讲的比较深入,而且实际使用价值较大的内容记录下来,并且注释 ...
随机推荐
- Python之路 - Socketserver实现多并发
Python之路 - Socketserver实现多并发 阅读指引
- 在webpack构建的项目中使用vue
一.复习在普通网页中使用vue1.使用script引入vue2.在index中创建 id为app的容器3.通过new vue得到vm实例二.在webpack中尝试使用vue://注意 : 在webpa ...
- metasploit framework(一):基本使用
它位于/usr/share/metasploit-framework 进入到modules目录,有六大模块 exploits:系统漏洞利用的流程,对系统漏洞注入一些特定的代码,使其覆盖程序执行寄存器, ...
- python 函数的定义及传参
函数是一个通用的程序结构部件,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义一个简单的函数: >>> def test(a): #创建一个函数,函数名是test ...
- V4 V7 V13支持包的区别(转)
三者均为支持包,可以让低版本系统使用高版本特性,支持最小版本有差异 V4支持1.6以上 V7支持2.1以上 V13支持3.2以上 V7依赖V4 转自:
- Forms.WebBrowser与Controls.WebBrowser区别
Forms.WebBrowser与Controls.WebBrowser区别 Forms.WebBrowser有ScrollBarsEnabled 属性,即窗口滚动条,可以设置为false即可: Co ...
- centos 6.9 NTP基准时间服务器配置
时间服务器端 yum install ntp -y vim /etc/ntp.conf 增加允许客户端访问 restrict 192.168.0.0 mask 255.255.0.0 nomodify ...
- bootstrap-table 使用遇到的问题总结
问题一:右上角button样式自定义 方法: //修改bootstrap-table右上角按钮样式 $(".table-box .columns-right button").re ...
- java bean validation 参数验证
一.前言 二.几种解决方案 三.使用bean validation 自带的注解验证 四.自定义bean validation 注解验证 一.前言 在后台开发过程中,对参数的校验成为开发环境不可缺少的一 ...
- 【mysql】主从同步,事务等概念
问题: mysql用binary log来保证主从同步的可靠性和安全性,在mysql中,主从同步是异步线程和异步任务来保证的. (在这点上,其它存储引擎有另外的选项,比如mongoDB和Elastic ...