JS基础

2019-04-09  本文已影响0人  Lawliet_cxy
console.log('hello world!');

数据类型:

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
var s = 'aaa';
s.toUpperCase();//返回'AAA'
var s = 'AAA';
s.toLowerCase();//返回'aaa'
var s = 'hello, world';
s.indexOf('world');//返回7
s.indexOf('aaa');//没有找到aaa子串,返回-1
var s = 'hello, world';//注意:,后面有个空格
s.substring(0, 5);//从索引0开始到5(不包括5),返回'hello'
s.substring(7);//从索引7开始到结束,返回'world',未指定结束索引就返回到字符串末尾

3.布尔值
布尔值只有truefalse
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的关键字来命名,如iffor这种,声明一个变量用var语句

var a = 1;//a=1

strict模式:
如果不用var声明变量,变量就会变为全局变量

a = 233;//a现在是全局变量

使用strict模式解决问题:

'use strict'
a = 10;//a现在不是全局变量
上一篇 下一篇

猜你喜欢

热点阅读