JavaScript高级程序设计(第3版)笔记(二)
来源:互联网 发布:在线起名网站源码 编辑:程序博客网 时间:2024/05/01 08:18
1.区分大小写,标识符指变量、函数、属性的名字、函数的参数,标识符要以字母、下划线、$开头,不能以数字开头
2.注释/*hello*/ 或//hello
注:支持严格模式的浏览器:IE10+,fireFox4+,Chrome,Opera12+,Safari5.1+
3.保留字、关键字不能用作标识符
4.变量:只是保存值得占位符而已
5.在修改变量值的同时,修改值的类型,有效,但是不推荐 var message = 'hi';
message = 100;//有效但是不推荐
6.在函数中var定义一个变量,变量会在函数执行完成后自动销毁 function test(){
var message = 'hi';
}
test();
console.log(message);//报错
7.function test(){
message = 'hi';
}
test();
console.log(message);//'hi'
省略了var,message变成了全局变量,调用一次test,变量就有了定义,可以在函数外部任何地方访问到
8.一个语句可以定义多个不同类型的变量,用‘,’隔开,如 var message = 'hi',
found =false,
age=29;
9.ECMA有5中简单数据类型(基本数据类型):undefined,null,boolean,string,number,
一种复杂数据类型:object
10.typeof操作符 用于检测变量的数据类型,会返回以下字符串可能:(1)'undefined'--如果这个值未定义
(2)'boolean'--如果这个值是布尔值
(3)'string'--如果这个值是字符串
(4)object--如果这个值是对象或null null被认为是空对象的引用
(5)function--如果这个值是函数 技术角度上function是对象不是数据类型,但仍有必要区分对象和函数
(6)number--如果这个值是数值
typeof操作符的操作值可以是数值字面量,也可以是变量,typeof是一个操作符而不是函数,圆括号可用可不用
var message = 'some string ';
alert(typeof message);//'string'
alert(typeof (message));//'string'
alert(typeof 95);//'number'
11.undefined类型
变量声明未赋值时,系统自动赋值undefined,无需自动赋值undefined
var message;
console.log(message);//undefined
console.log(age);//报错
console.log(typeof age)//'undefined'
console.log(typeof message);//'undefined'
12.null类型
表示空对象的指针,因此,typeof检测null时,后返回'object'。一般变量准备用于保存对象,先初始化为null
13.boolean 只有true和false两个字面值
转换布尔值的方法 Boolean();
""(空字符串),0,NaN,null,undefined转化为false,其余为true*
14.Number类型 :整数和浮点数值
整数:一般通过十进制表示,也可通过八进制(以0开始),十六进制表示(以0x开始),不过在严格模式下,八进 制会报错
如果字面值超出范围,则去掉先导零,以十进制进行显示
var int1 = 070; //56
var int2 = 079; //无效的八进制--以十进制解析 79
var int3 = 0xA;//十六进制的10
算数运算时,各个进制,最终会转化为十进制
浮点数值:数值中必须包含一个小数点
只支持十进制,本身是整数,优先转化为整数
var float1 = 1.1;//1.1
var float2 = .1;//有效,但不推荐 0.1
var float3 = 1.;//1
var float4 = 1.0;//1
var float5 = 3.15e2;//315 e可大写可小写
数值范围:infinity,当超过数值范围,会返回infinity
isFinite()返回true/false 判断是否超出数值范围
NaN:非数值,与任何值都不相等,任何涉及NaN的操作返回都是NaN
console.log(NaN == NaN)//false;
isNaN()判断是否为NaN
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false
alert(isNaN("10"));//false
alert(isNaN(true));//false
数值转换:包括三种方式Number()、parseInt()、parseFloat() 后两种是将字符串转化成数值
Nmuber()转换规则:
如果传入Boolean值,返回1或0;
如果传入数值,返回数值
如果传入null,返回0;
如果传入undefined,返回NaN*
如果传入是字符串:
只包含 数字,则转为十进制数字(去掉先导零)
如果是浮点型,则对应转化为浮点型数值
如果为空字符串,则转化为0;
其他可能,返回NaN
如果是对象,则调用对象的valueOf()方法,按之前规则转换,如果转换的结果为NaN,则调用对象
的toString()方法,然后再次依照之前规则转换
parseInt
会自动忽略空格,直到出现第一个非空字符开始,直到遇到第一个非数字字符,所以praseInt('')==NaN;*
可以识别各种进制的数值是,但ECMAScript3识别八进制而ECMAScript5不识别八进制,或当做十进制
所以可以传入第二个参数,进行区分
parseInt('10',10);//10 按十进制解析
parseInt('10',2);//2;按二进制解析
parseInt('10',8);//8 按8进制解析
parseInt('10',16);//16 按十六进制解析
注:parseInt('AF',16) //175 有了第二个参数,可省略八进制中的‘0’,十六进制中的‘0x’
parseFloat
只按十进制进行转化,无第二个参数
parseFloat('0xA');//0
15.String类型
\b 空格 \n 换行 \r回车 \\斜杠
转化为字符串的方法:toString() 和String()
null和undefined不具有toString()方法
注:toString()方法可以通过传递参数,输出以二进制,八进制,十六进制的字符串值
var num = 10;
alert(num.toString(2));//'1010'
alert(num.toString());//'10'
String()万能转化方法
没有参数, alert(String(null)) //'null'
alert(String(undefined))//'undefined'
16.object类型
对象实际是一组属性和功能的集合
创建自定义对象: var o = new Object(); 如果不传入参数可以这样写 var o = new Object;
object的每个实例,都具有以下属性:
Constructor:保存着创建当前对象的函数,构造函数(Constructor)就是Object();
hasOwnProperty('属性名'),用于判断给定属性名在当前对象中是否存在
isPrototypeOf(object):检测传入对象是否是另一个对象的原型
propertyIsEnumerable('属性名'):检查给定属性是否能使用for-in语句
toLocacleString():返回对象的字符串表示,字符串与执行环境的地区对应
toString();返回对象的字符串表示
valueOf():返回对象的字符串、数值或布尔值表示
- JavaScript高级程序设计(第3版)笔记(二)
- 《JavaScript高级程序设计(第3版)》读书笔记(二)
- JavaScript高级程序设计(第3版)笔记(一)
- JavaScript高级程序设计(第3版)笔记(三)
- JavaScript高级程序设计(第3版)笔记(四)
- JavaScript高级程序设计(第3版)笔记(五)
- 1.1 JavaScript高级程序设计(第3版) 笔记---对象
- 《javascript高级程序设计(第3版)》阅读笔记
- 《JavaScript高级程序设计(第3版)》知识点笔记1
- 《JavaScript高级程序设计(第3版)》知识点笔记2
- javascript高级程序设计笔记(二)
- JavaScript高级程序设计笔记 (二)
- Javascript高级程序设计学习笔记(二)
- javascript高级程序设计--学习笔记3 (第5章)
- JavaScript高级程序设计(第3版)阅读笔记第01天-js简介
- JavaScript高级程序设计(第3版)阅读笔记第02天-js基本概念
- JavaScript高级程序设计(第3版)阅读笔记第03天-ajax和Comet
- 《Javascript高级程序设计(第3版)》阅读笔记(持续更新)
- 【3分钟带你学】SVN
- 饭卡 hdu2546
- jvm之虚拟机类加载
- 启动Node服务的几种方法
- 代码规范:在Keil5中使用代码格式化工具Astyle(插件)
- JavaScript高级程序设计(第3版)笔记(二)
- 大数据:正在到来的数据革命
- maven基本
- 独轮车问题
- 色彩表示与编码
- 电子老鼠闯迷宫
- volley official https://github.com/google/volley
- java.lang.UnsupportedClassVersionError
- Centos7安装Mysql