JS笔记
数据类型
-Boolean
-Undefined
-Object
-Null
-Number
整数,浮点数,进制数
-进制数
var num1=070; //八进制的56
var num2=079; //无效的八进制数---解析为79
var num3=08; //无效的八进制数---解析为8
十六进制必须以0x开头
-浮点数
var floatNum1=1.1;
var floatNum2=0.1;
var floatNum3=.1; //有效,但不推荐
浮点数的内存空间是整数的两倍。如果小数点后没有整数,将会被解析成整数
浮点数的最高精度是17位小数
浮点数会存在误差,0.1+0.2结果不是0.3,而是0.3000000000000004
***-Nan(Not a number)非数值***
这个数值用于表示一个本来要返回数值的操作数未返回数值的情况
特点:
1.任何涉及Nan的操作(例如 Nan/10)都会返回NaN
2.NaN与任何值都不相等,包括NaN本身
-数值转换
Number(),
-转换规则
1.如果是Boolean值,true和false将被分别转换为1和0
2.如果是数字值,只是简单的传入和返回
3.如果是null值,返回0
4.如果是undefined,返回NaN
5.如果是字符串,满足以下规则
~如果字符串中只包含数字,(包括前面带正好和负号的情况),则将其转化成十进制数值
~如果字符串中包含有效的浮点格式,如“1.1”,则将其转换成对应的浮点数值
~如果字符串中包含有效的十六进制格式,则转换成对应的十进制数值
~字符串是空,转换为0
~字符串中没有上述类型,转换为NaN
parseInt(),
var num1=parseInt("10",2); //2 按二进制进行解析
var num2=parseInt("10",8); //8 按8进制进行解析
var num2=parseInt("10",10); //10 按10进制进行解析
var num2=parseInt("10",16); //16 按16进制进行解析
parseFloat()
-String
字符串一旦创建,值不能被修改。要改变字符串,要销毁原来的字符串
重新赋给一个新的变量
一元操作符
var num=25;
num = -num; //变成了-25
布尔操作符
与,或,非
加减乘除操作符
全等和不全等
=== //全等
== //不全等
var result1=("55"==55); //true,因为转换后相等
var result1=("55"===55); //false,因为是不同的数据类型
流程控制语句
-for
-while
-do-while
-for-in
for(property in expression) statement
for(var propName in window){
document.write(propName);
}
-label:statement
start:for(var i=0;i<10;i++){
alert(i);
}
-with(expression) statement;
var qs=location.search.substring(1);
var hostname=location.hostname;
var url=location.href;
//上述语句都包含location所以使用with语句:
with(location){
var qs=search.substring(1);
var hostname=hostname;
var url=href;
}
小结
1.基本数据类型:Undefined,Null,Boolean,Number,String
2.没有为浮点数和整数分别定义不同的数据类型,Number类型可以表示所有数值
3.Object,该语言中所有对象的基础类型
4.严格模式为这门语言中容易出错的地方施加了限制
5.提供了很多和C及其他类c语言中相同的基本操作符
6.无须指定函数的返回值,因为任何ECMAScript函数都可以在任何适合返回任何值
7.实际上,未指定返回值的函数返回的是一个特殊的undefined值
8.ECMAScript没有函数签名的概念,因为其函数参数是一个包含零个或多个值的数组的形式传递的
9.函数不能重载