JavaScript中所有的数据类型----数字类型、字符串类型、布尔类型。特殊值null和undefined。
注释代码
注释代码不被运行也不会报错,这是因为解释器会自动忽略这些注释代码.
定义变量添加var关键字的意义
我们使用var关键子定义一个局部变量,如果不加var关键字那么就是全局变量了.
变量定义标准的做法是变量以小写字母开头,通常除了第一个单词外,其他单词的首字母都大写,就像是 priceOfProduct一样。
undefined
返回undefined的理解
1,我们定义一个变量,返回undefined
var nik;
>> undefined
2,访问未赋值的变量,返回undefined
nik;
>> undefined
3,我们定义一个函数,返回undefined
function abc(x){
return x+10;
}
>> undefined
4,函数体没有返回值,调用函数返回undefined
function abc(x){
x+5;
}
>> undefined
abc(12);
>> undefined
只要一条命令没有返回一个值,JavaScript都会返回undefined作为响应.
- 访问变量会返回一个值
var num =10;
>> undefined
num
>> 10
- 函数体有返回值,调用函数会返回一个值
function abc(x){
return x+5;
}
abc(2)
>> 7
- 对变量进行运算或赋值,会返回一个值
对变量的运算或赋值操作的结果默认就有一个return语句把运算结果或赋值结果返回作为响应.
var num=10既有定义变量num,也有对num赋值,不过这种情况下认为优先认为是定义一个变量,所以返回undefined.
var num=10;
>> undefined
num*2+100;
>> 120
num = 99
>> 99
自增自减的对象必须是变量
对变量的操作不会修改变量自身,除非将操作的结果赋值覆盖原来变量
x= 3;
>> 3
x+1;
>> 4
x
>> 3
x= x+1;
>> 4
x
>> 4
自增自减操作直接修改变量自身
3++;
>> VM631:1 Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
a=3
>> 3
a++
>> 3
a
>> 4
++a
>> 5
--a
>> 4
a
>> 4
字符串
和字符串连接,结果是两个字符串的拼接
var num=10;
var string="10";
>> undefined
string+num;
>> "1010"
num+string;
>> "1010"
取出字符串中某个字符与取出数组元素的操作是一样的
var string1="Mick";
var string2="High Nick";
string1[0]+string2[5]
>> "MN"
截取字符串slice
#截取0到2的字符
var string2="High Nick";
string2.slice(0,3)
>> "Hig"
#截取3到结束的字符
string2.slice(3)
>> "h Nick"
字符串大小写转换
"Hello World!".toUpperCase();
>> "HELLO WORLD!"
"Hello World!".toLowerCase();
>> "hello world!"
一个标准的英语句子,应该是首字母大写,其他字母小写。如何把任意一个句子转换成标准形式?
string="iM going to SCHOOL,it's going be late";
a=string[0].toUpperCase();
b=string.slice(1).toLowerCase();
a+b;
>> "Im going to school,it's going be late"
布尔值
- 定义布尔值直接写true或false,添加上引号则是字符串
a=true;
typeof(a)
>> "boolean"
b="true";
typeof(b)
>> "string"
- 布尔值可以用于运算
在运算表达式中true转为数字1进行运算,false转为数字0进行运算
a=true;
num=3;
num+a*2+a*3;
>> 8
a=false;
num=3;
num+a*2+a*3;
>> 3
true>44
>> false
true+45>44
>> true
false+44>=44
>> true
等于
两个等于号只要值相等,类型不做限制,结果就为true
三个等于号要求值和类型都必须相同,结果才返回true
3==3
>> true
3===3
>> true
3=="3"
>> true
3==="3"
>> false
布尔值和数字做比较时是以0或1的值进行比较,==只要值相等就返回true,而===则是false因为布尔值类型与数字类型不同
"s"==true
>> false
0==false
>> true
0===false
>> false
1==true
>> true
布尔值进行比较时是转换为数值0或1进行比较的
"false"==false
>> false
"false"===false
>> false
"true"==true
>> false
布尔值和字符串的值都可以是数值0或1,类型不同值相同,==就返回true
true=="1"
>> true
false=="0"
>> true
false=="1"
>> false
true=="2"
>> false
undefined和null
JavaScript使用undefined表示没有值或者没有返回值。例如我们创建了一个新的变量却没有使用=操作符为它赋值,那么该变量的值就是undefined。调用一个没有return值的函数也是返回undefined。
当我们想要刻意表达“这是空的”时,通常使用null。
var a=undefined;
var b=null;
>> undefined
a
>> undefined
b
>> null
a=3;
>> 3
b=4
>> 4
使用undefined和null的场景模拟:
以来到服装店为例,如果把变量设置为null,就代表你没有要买的衣服。如果把变量设置为undefined,就代表你暂时还没挑到要买的衣服,后面挑到合适的就买了。