console.log('hello world!');
- JavaScript并不强制要求在语句后加上
;
,它会自动在每句语句末尾补上,但是最好还是加上。
行注释://
块注释:/* */
数据类型:
1.Number:
123;//整型
0.123;//浮点型
1.234e3;//科学计数法表示1.23*1000,等同于1234
-99;//负数
NaN;//Not a Number,无法计算结果时用NaN表示
Infinity;//表示无限大,数值超过JavaScript的最大数值时,就显示为Infinity
2.字符串
字符串是以单引号'或双引号括起来的文本,如'abc'
,"abc"
输出多行字符串,不用一直使用/n
,使用`xxx`
即可
console.log('多行
字符串
测试');
处理字符串常用方法(调用这些方法不会改变字符串本身,只是返回一个新的字符串):
var s = "hello";//定义一个小写的hello字符串
s.toUpperCase();//将hello变为HELLO,但是此时s的值并没有变,只是创建了一个新的字符串
console.log(s);//打印出s的值依然为hello
-
toUpperCase()
:把一个字符串全部变为大写
var s = 'aaa';
s.toUpperCase();//返回'AAA'
-
toLowerCase()
:把一个字符串全部变为小写
var s = 'AAA';
s.toLowerCase();//返回'aaa'
-
indexOf()
:搜索指定字符串出现的位置
var s = 'hello, world';
s.indexOf('world');//返回7
s.indexOf('aaa');//没有找到aaa子串,返回-1
-
substring()
:返回指定索引区间的子串
var s = 'hello, world';//注意:,后面有个空格
s.substring(0, 5);//从索引0开始到5(不包括5),返回'hello'
s.substring(7);//从索引7开始到结束,返回'world',未指定结束索引就返回到字符串末尾
3.布尔值
布尔值只有true
和false
4.比较运算符
需要注意的是==
比较和===
比较
==
:会自动转换数据类型来进行比较,会有很奇怪的结果
===
:先比较数据类型,不一致的话直接返回false
,数据类型一致才比较值
尽量使用===
比较
关于比较运算符一些奇怪的例子:
NaN === NaN;//false,NaN和所有值都不相等,包括它自己,只能通过isNaN(NaN)判断
1 / 3 === (1 - 2 / 3);//false,浮点数在计算过程中会产生误差,计算机无法精准计算无限循环小数
//如果要比较浮点数,可以通过计算它们之差的绝对值和一个特定的阈值相比较
0.1 + 0.2 === 0.3//false,在JavaScript中二进制的浮点数0.1和0.2并不是很精确,在计算中产生误差
5.null和undefined
null表示值为空
undefined表示值未定义
6.对象
var person = {
name: 'lawliet',
age:22,
sex:'man'
};
person.name;//获取person对象的name属性
person.age;//获取person对象的age属性
7.变量
JavaScript中变量名士大小写英文、数字、$
和_
的组合,不能用数字开头,并且不能用JavaScript的关键字来命名,如if
、for
这种,声明一个变量用var
语句
var a = 1;//a=1
strict模式:
如果不用var
声明变量,变量就会变为全局变量
a = 233;//a现在是全局变量
使用strict模式解决问题:
'use strict'
a = 10;//a现在不是全局变量