js3章

来源:互联网 发布:一句激励你的话知乎 编辑:程序博客网 时间:2024/06/05 22:50
第三章 基本概念
一、严格模式
ECMAScript引入严格模式
“use strict”
他是一个编译指示:告诉JavaScript语言使用严格模式
例如
function doSomething(){
'use strict';
//函数体
}
支持严格模式的包含 IE10+,Firefox4+,safari浏览器5.1+,opera12+和chrome

二、变量
用var定义的变量 将成为定义变量的作用域的局部变量,也就是说在函数中定义的变量在函数执行完毕后就被销毁
例如
2.1function doSomething(){
var message='a';
}
doSomething();//函数中完毕后message就会被销毁
alert(message);
错误信息: Uncaught ReferenceError: message is not defined


2.2 function doSomething(){
message='a';// 这里定义的为全局变量
}
doSomething();//函数中完毕后message就不会被销毁
alert(message);
这里使用未经声明的变量在严格模式下会报错
message 未定义

三、数据类型
ECMAScript有五种简单数据类型和一种复杂数据类型
简单:Undefined、Null、Boolean、string、number
复杂:object
3.1 typeof 操作符
返回值包括:undefined 、boolean、string、number、object、function
alert(typeof null);//-----object
这里null会被当作一个空对象的引用

3.2 undefined类型
var message;
alert(message==undefined);//返回true
用var声明的变量没有初始化 --就是undefined
未声明和未初始化的变量 使用typeof 操作符都会返回undefined

3.3 null类型
null类型只有一个值就是 null 表示空对象指针、
例如
var car=null;
alert(typeof car);返回 object
其实undefined 是派生自null的值,
例如
alert(null==undefined);//true
3.4 number类型
判读一个数是不是无穷大
使用函数isFinite(),这个函数在最大数和最小数之间都会返回true

NaN
任何数除以0 ,都会返回NaN,其次NaN与任何数都不相等,
例如alert (NaN==NaN)// 返回false
判断一个数是不是 数字可以使用 isNaN()函数,函数接受一个参数()可以是任何数据类型

3.5 数值转换
其中有三个方法将非数值转换为数值:Number(),parseInt(),parseFloat()
Number方法参数可以是任何数据类型:
例如
var num=Number('hello world');----------NaN
var num=Number('');-----------------------0
var num=Number('000001')---------------------1
var num=Number(true);----------------------1
var num=Number(undefned)---------------NaN

parseInt()方法有俩个参数('',--)
--代表的是进制数
parseFloat()只能转换十进制数与parseInt的区别是他始终会忽略前导的0

3.6 string类型
转换为字符转的方法为toString()
数值。布尔值、对象、字符串值都有这个方法。但是null和undefined没有这个方法
——在不知到转换的数据类型是不是null和undefined可以使用String()方法
如果是null则返回‘null’,如果是‘undefined ’ 则返回‘undefined’
例如
var vlu1=10;
var vlu2=true;
var vlu3=null;
var vlu4;
alert(String(vlu1));--------------------'10'
alert(String(vlu2));--------------------'true'
alert(String(vlu3));--------------------'null'
alert(String(vlu4));--------------------'undefined'

3.7 objec 类型
object类型的重要思想就是:在ECMAScript中Object类型,是所有他的实例的基础,Object所具有的任何属性和方法都存在在更具体的对象当中
属性与方法
1.constructor:保存用于创建当前对象的函数
2.hasOwnProperty(propertyName):用于检查给定的属性是否存在于当前对象的实例中,且参数必须是字符串
3.isPropertyOf(object):用于检查是否传入了的对象是对象的原型
4.propertyIsEnumber(propertyName):表示检查给定的属性是否可以用for-in语句来枚举,参数必须是字符串
5.toLocalString:返回对象的字符串表示
6.toString():返回对象的字符串表示
7.valueOf():返回对象的字符串,数值,或者布尔值表示。通常与toString方法返回的值相同

3.8 操作符
++a;
--a;
先执行++和--在运算
a++;
a--;
先运算在++和--

3.9 比较操作符
当数字与字符串比较时,先转化成数字,在进行比较,对于不能转化成数字的字符串,怎返回false
另外nan与任何数据比较时候都返回 false

3.10 相等操作符
== 会有数据类型转换
而=== 没有数据类型转化
null=undefined是true
如果操作数是俩个对象,则比较他们是不是一个对象,如果是 怎返回true

3.11 全等
null与undefined相等,因为他们是类似的值,而null与undefined全等返回false 是因为他们是不同的数据类型

3.12 do-while语句
这种循环适合,至少执行一次的情形
3.12-1
for-in语句 ,是一种精准的迭代语句,可以用来枚举对象的属性
for(var pro in window)
{
document.write(pro);
}
这个语句会返回window对象的所有属性
此处省略一点字.......
0 0
原创粉丝点击