标题 JS笔记:基本数据类型和简单语句
首先先说typeof操作符
对一个值使用typeof可能会返回一下某个字符串;
“undefined”-该值未定义 “number”-这个值为数字
“boolean”-这个值为布尔值 “string”-这个值为字符串
“object”-这个值是对象或null
“function”-这个值是函数
例如:
//下面是几个使用typeof的例子//
/* var message = “some string”;
alert(typeof message); //”string”
alert(typeof (message)); //”string”
Alert(typeof 90); //”number”
*/
由此可见,typeof操作符的操作数可以是变量,也可以是数值字面量。Typeof用来检查给定变量的数据类型。当然,对未定义的变量使用typeof则会产生错误。
1.Undefined类型
Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但是为对其初始化时,这个变量的值就是undefined,
例如:
Var message;
alert(message == undefined); //ture
/*只声明未初始化,比较该变量与undefined字面量发现等价*/
//再来一个例子,显示化的初始化变量message
Var message = undefined;
Alert(message == undefined); //ture
2.Null类型
Null类型是第二个只有一个值的数据类型,这个特殊的值为null。Null的值表示一个空对象指针,而这个正是typeof操作符检测null时返回”object”的原因。
例如:
var car = null;
alert(typeof car); //”object”
如果定义的变量在将来用来保存对象,那么最好将该变量初始化为null而不是其他值。这样一来秩序检查null值就可以知道相应的变量是否已经给保存了一个对象的引用。
If(car != null){
执行某些操作}
alert(undefined == null); //ture
//实际上undefined值也是派生自null值的额,因此两个值的相等性测试返回ture
3.Boolean类型
Boolean类型是使用的最多的一个类型,该类型有两个字面值:ture 和false,这两个值和数字值不是一会是,因此ture不一定等于1,false也不一定等于0。
例如:
var found = ture;
var lost = false;
/*需要注意的是,Boolean类型的字面值 ture 和false 是分大小写的。即TURE 和 FALSE,只是标识符。*/
要将一个值转换为Boolean值,可以调用转型函数Boolean(),如下所示:
var message = “hello world”;
var newmessage = Boolean(message);
/*
数据类型 转换为ture的值 转换为false的值
Boolean ture false
String 非空字符串 “”(空字符串)
Number 任何非零数值 0和NaN
Object 任何对象 null
Undefined n/a undefined
*/
4.Number类型
Number类型是最令人关注的类型,这种类型使用IEE754格式来表示,为了支持各种数值类型,定义了不同的数值字面量格式。
4.1整形
在进行算数运算时,所有的八进制和十六进制都会被转换为十进制。
//10进制整形
var intnum = 55; //整数
//8进制
//(第一位须为0,剩余为8进制数字序列(0-7)
var octnum1 = 070; //56
Var octnum2 = 079; //无效 解析为79
Var octnum3 = 08; //无效 解析为8
//16进制
//(前两位必须为0x,后跟16进制数字;)
var hexnum1 = 0xa; //10
var hexnum2 = 0x1f; //31
4.2.1浮点数
浮点数即该数值中必须包含一个小数点,并且小数点后必须至少有一位数字。
/*
var floatnum1 = 1.1;
Var floatnum2 = 0.1;
Var floatnum3 = .1;
*/
4.2.2 NaN
NaN:非数字类型。
特点:
① 涉及到的任何关于NaN的操作,都会返回NaN
② NaN不等于自身。
//isNaN() 函数用于检查其参数是否是非数字值。
isNaN(123) //false
isNaN("hello") //true
4.2.3数值转换
有三个函数可以把非数值转换为数值:
Number(),parseInt(),parseFloat().
Number()转换规则;
如果是Boolean类型,true 和 false 分别返回1和0.
如果是数字值,只是简单的传入和传出。
如果是null值,返回0;
如果是undefined,返回NaN.
如果是字符串,只有数字转换为10进制,空字符串转换为0,不在基本类型转换为NaN;
var num1 = Number(“hello world”); //NaN
var num2 = Number(“”); //0
var num3 = Number(true); //1
5.String类型
String类型用于表示由0或者多个16位unicode字符组成的字符序列,即字符串。字符串可以用单双引号表示。
/*
var name = “tom”;
var id = ‘mom’;
转换为字符串,用toString()方法,但是null和undefined没有这个方法。
var age = 11;
Var ageASstring = age.tostring(); //”11”
Var found = true;
Var ageASstring = true.tostring(); //”true”
*/
简单语句
1、if语句
1)if单分支语句:
if(条件){
//条件成立(返回的值为true时)执行的代码
}
2)if双分支语句:
if(条件1){ //条件1成立时执行的代码
}else{
//条件不成立(返回值为false)时执行的代码
}
3)if多分支语句:
if(条件1){
//条件1成立时执行的代码
}else if(条件2){
//条件2成立时执行的代码
}
...
else{
//条件都不成立时执行的代码
}
注意:if语句简单的双分支结构可以用三元运算表示,语法格式为:
条件 ? 条件成立时执行的语句 : 条件不成立时执行的语句;
2、switch语句
1)switch语句经常和case、break、default搭配使用
2)
switch(值) {
case value1: //要求value1与值恒等
//如果表达式的值恒等于value1,代码从这里开始执行
break;
case value2:
//如果表达式的值恒等于value2,代码从这里开始执行
break;
case value3:
//如果表达式的值恒等于value3,代码从这里开始执行
break;
case value4:
//如果表达式的值恒等于value4,代码从这里开始执行
break;
default:
//如果以上条件都不成立,默认执行这里的代码
}
二、循环语句
1、while循环语句
//变量初始化
while(条件){
//条件成立时执行的代码
}
2、do…while
//变量初始化
do{//不管条件是否成立,都要先执行一次这里的语句,然后再进行条件判断
//这里会伴随着条件的更新
}while(条件)
3、for循环
for(变量初始化;条件判断;变量更新){
//条件成立时执行这里的代码
}
三、循环跳转
1、break //退出当前整个循环
1)只能在循环语句中使用
2)break后面的语句不会被执行
3)在多层嵌套的循环中,break只能向外跳出一层循环
2、continue //退出本次循环,执行下次循环
1)只能在循环语句中使用
2)跳出循环体中的本次循环,然后继续执行下次循环
四,for-in语句
for-in语句是一种精准的迭代语句,可以用来枚举对象的属性。
语法
for(property inexpression)statement
for(var propName inwindow){
document.write(propName);
}
五,with语句
with语句的作用是将代码的作用域设置到一个特定的对象中。
语法:with(expression) statement;
//定义一个with语句的主要母的是为了简化多次编写同一个对象的工作
var qs = location.search.substring(1);
var hostname = location.hostname;
//使用with语句:
with(location){
var qs = search.substring(1);
var hostname = hostname;
}