彩世界开奖app官网-彩世界平台官方网址(彩票平台)
做最好的网站
来自 前端技术 2019-12-07 08:17 的文章
当前位置: 彩世界开奖app官网 > 前端技术 > 正文

JavaScript学习笔记(一)——数据类型和变量彩世

在念书廖雪峰前辈的JavaScript教程中,境遇了部分内需专一的点,因而作为学习笔记列出来,提醒自身在乎!

null和undefined

null表示三个“空”的值,它和0以致空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。

在其他语言中,也是有雷同JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。然则,在JavaScript中,还应该有三个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null代表一个空的值,而undefined意味着值未定义。事实注解,那并从未什么样卵用,区分两者的意义超级小。大非常多情景下,我们都应当用nullundefined只是在认清函数参数是不是传递的景况下有用。

对象

JavaScript的目的是风姿罗曼蒂克组由键-值组成的冬天集聚,比如:

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};

JavaScript对象的键都以字符串类型,值能够是不管三七八十生龙活虎数据类型。上述person指标大器晚成共定义了6个键值对,此中种种键又称为对象的个性,比如,personname属性为'Bob'zipcode属性为null

要获取八个对象的性质,大家用对象变量.属性名的方式:

person.name; // 'Bob'
person.zipcode; // null

布尔值

布尔值和布尔代数的代表完全风华正茂致,二个布尔值唯有truefalse两种值,要么是true,要么是false,能够直接用truefalse代表布尔值,也得以通过布尔运算总计出来:

true; // 这是一个true值
false; // 这是一个false值
2 > 1; // 这是一个true值
2 >= 3; // 这是一个false值

&&运算是与运算,唯有具备都为true&&运算结果才是true

true && true; // 这个&&语句计算结果为true
true && false; // 这个&&语句计算结果为false
false && true && false; // 这个&&语句计算结果为false

||运算是或运算,只要在那之中有三个为true||运算结果正是true

false || false; // 这个||语句计算结果为false
true || false; // 这个||语句计算结果为true
false || true || false; // 这个||语句计算结果为true

!运算是非运算,它是三个单目运算符,把true变成falsefalse变成true

! true; // 结果为false
! false; // 结果为true
! (2 > 5); // 结果为true

布尔值常常用在标准决断中,举例:

var age = 15;
if (age >= 18) {
    alert('adult');
} else {
    alert('teenager');
}

strict模式

JavaScript在准备之初,为了有助于初大家学习,并不强制必要用var发明变量。那么些企划不当带来了惨痛的后果:倘使多个变量未有经过var证明就被利用,那么该变量就机关被发明为全局变量:

i = 10; // i现在是全局变量

在同二个页面包车型地铁不相同的JavaScript文件中,要是都毫无var发明,无独有偶都接收了变量i,将引致变量i相互影响,暴发难以调试的荒唐结果。

使用var发明的变量则不是全局变量,它的节制被节制在该变量被发明的函数体内(函数的定义将稍后讲明),同名变量在分化的函数体内互不冲突。

为了修补JavaScript那后生可畏严重设计破绽,ECMA在世襲标准中出产了strict格局,在strict形式下运转的JavaScript代码,强制通过var表达变量,未利用var发明变量就选用的,将引致运维错误。

启用strict形式的方法是在JavaScript代码的率先行写上:

'use strict';

那是二个字符串,不协理strict形式的浏览器会把它当作二个字符串语句试行,支持strict形式的浏览器将拉开strict形式运作JavaScript。

来测量试验一下您的浏览器是或不是能支撑strict情势:

'use strict';
// 如果浏览器支持strict模式,
// 下面的代码将报ReferenceError错误:
abc = 'Hello, world';
console.log(abc);

运作代码,倘若浏览器报错,请修复后再运营。假使浏览器不报错,表明你的浏览器太古老了,必要尽快晋级。

不用var发明的变量会被视为全局变量,为了防止那生龙活虎劣势,全部的JavaScript代码都应有利用strict情势。大家在背后编写的JavaScript代码将一切使用strict方式。

Number

JavaScript不区分整数和浮点数,统风姿浪漫用Number表示,以下都以官方的Number类型:

123; // 整数123
0.456; // 浮点数0.456
1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数
NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity

微计算机由于接受二进制,所以,有的时候候用十四进制表示整数相比便于,十四进制用0x前缀和0-9,a-f代表,举例:0xff000xa5b4c3d2,等等,它们和十进制表示的数值完全等同。

Number能够平素做四则运算,准则和数学意气风发致:

1   2; // 3
(1   2) * 5 / 2; // 7.5
2 / 0; // Infinity
0 / 0; // NaN
10 % 3; // 1
10.5 % 3; // 1.5

注意%是求余运算。

相比运算符

当咱们对Number作相比较时,能够因此比较运算符拿到二个布尔值,那是我们预料的结果:

2 > 5; // false
5 >= 2; // true
7 == 7; // true

事实上,JavaScript允许对私下数据类型做相比:

false == 0; // true
false === 0; // false

要极度注意相等运算符==。JavaScript在统筹时,有二种比较运算符:

先是种是==正如,它会活动调换数据类型再比较,比很多时候,会博得那个奇怪的结果;

第三种是===相比,它不会活动转变数据类型,假如数据类型不相通,重回false,若是少年老成致,再比较。

出于JavaScript这些设计破绽,不要接受==正如,始终坚持不渝选用===比较。

另二个不等是NaN以此新鲜的Number与具备别的值都不等于,包罗它协和:

NaN === NaN; // false

唯意气风发能决断NaN的法子是通过isNaN()函数:

isNaN(NaN); // true

末尾要当心浮点数的约等于比较:

1 / 3 === (1 - 2 / 3); // false

那不是JavaScript的设计缺欠。浮点数在运算进程中会爆发标称误差,因为计算机不或者正确表示极其循环小数。要相比很多少个浮点数是或不是等于,只可以总括它们之差的相对化值,看是不是低于某些阈值:

Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

变量

变量的定义基本上和初级中学代数的方程变量是生龙活虎致的,只是在Computer程序中,变量不仅可以够是数字,还足以是轻松数据类型。

变量在JavaScript中便是用二个变量名表示,变量名是大大小小写意大利语、数字、$_的组成,且不可能用数字初阶。变量名也无法是JavaScript的重要性字,如ifwhile等。申澳优(Ausnutria Hyproca卡塔尔个变量用var语句,比如:

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = '007'; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null

变量名也能够用普通话,然而,请不要给谐和找劳动。

在JavaScript中,使用等号=对变量举办赋值。可以把自由数据类型赋值给变量,同多少个变量能够频频赋值,并且能够是分化档期的顺序的变量,然而要留神只可以用var说爱他美(Beingmate卡塔尔次,举例:

var a = 123; // a的值是整数123
a = 'ABC'; // a变为字符串

这种变量本人类型不定点的言语称之为动态语言,与之对应的是静态语言。静态语言在概念变量时必须钦命变量类型,假若赋值的时候类型不协作,就能够报错。举个例子Java是静态语言,赋值语句如下:

int a = 123; // a是整数类型变量,类型用int申明
a = "ABC"; // 错误:不能把字符串赋给整型变量

和静态语言比较,动态语言更加灵敏,就是这么些原因。

请不要把赋值语句的等号等同于数学的等号。比方上面包车型客车代码:

var x = 10;
x = x   2;

只要从数学上通晓x = x 2那无论怎么样是不树立的,在前后相继中,赋值语句先计算侧边的表达式x 2,拿到结果12,再赋给变量x。由于x事情发生前的值是10,重新赋值后,x的值形成12

要来得变量的源委,能够用console.log(x),张开Chrome的调控台就足以见见结果。

// 打印变量x

使用console.log()代替alert()的受益是能够免止弹出烦人的对话框。

变量

变量的定义基本上和初级中学代数的方程变量是千篇风度翩翩律的,只是在计算机程序中,变量不只可以够是数字,还足以是随机数据类型。

变量在JavaScript中正是用一个变量名表示,变量名是大大小小写República Portuguesa语、数字、$_的重新组合,且不可能用数字初叶。变量名也无法是JavaScript的显要字,如ifwhile等。申美素佳儿个变量用var语句,比如:

var a; // 申明了变量a,此时a的值为undefined
var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1
var s_007 = '007'; // s_007是一个字符串
var Answer = true; // Answer是一个布尔值true
var t = null; // t的值是null

变量名也得以用汉语,不过,请不要给和谐找劳动。

在JavaScript中,使用等号=对变量进行赋值。能够把自由数据类型赋值给变量,同二个变量可以频仍赋值,並且能够是莫衷一是门类的变量,可是要静心只可以用var说澳优次,比如:

var a = 123; // a的值是整数123
a = 'ABC'; // a变为字符串

这种变量本人类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在概念变量时必需钦定变量类型,假使赋值的时候类型不合作,就能够报错。比方Java是静态语言,赋值语句如下:

int a = 123; // a是整数类型变量,类型用int申明
a = "ABC"; // 错误:不能把字符串赋给整型变量

和静态语言比较,动态语言越来越灵敏,正是那个缘故。

请不要把赋值语句的等号等同于数学的等号。举例上面包车型客车代码:

var x = 10;
x = x   2;

 

假若从数学上领悟x = x 2那不论怎么样是不树立的,在先后中,赋值语句先总结侧边的表明式x 2,得到结果12,再赋给变量x。由于x事情发生前的值是10,重新赋值后,x的值变成12

要来得变量的源委,能够用console.log(x),张开Chrome的调控台就足以看看结果。

使用console.log()代替alert()的益处是足以制止弹出烦人的对话框。

数组

数组是后生可畏组按顺序排列的汇集,集结的种种值称为因素。JavaScript的数组可以蕴涵专擅数据类型。举例:

[1, 2, 3.14, 'Hello', null, true];

上述数组包罗6个要素。数组用[]表示,成分之间用,分隔。

另风姿罗曼蒂克种创立数组的办法是经过Array()函数完结:

new Array(1, 2, 3); // 创建了数组[1, 2, 3]

可是,出于代码的可读性构思,刚毅建议直接采取[]

数组的成分得以经过索引来访问。请在乎,索引的伊始值为0

var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined

对象

JavaScript的对象是后生可畏组由键-值组成的冬季汇聚,比如:

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};

JavaScript对象的键都以字符串类型,值能够是即兴数据类型。上述person对象生龙活虎共定义了6个键值对,个中每种键又称作对象的属性,举个例子,personname属性为'Bob'zipcode属性为null

要博取一个指标的习性,我们用对象变量.属性名的方式:

person.name; // 'Bob'
person.zipcode; // null

数组

数组是大器晚成组按顺序排列的聚众,集合的每一种值称为要素。JavaScript的数组可以蕴含人身自由数据类型。譬喻:

[1, 2, 3.14, 'Hello', null, true];

上述数组包罗6个成分。数组用[]代表,成分之间用,分隔。

另后生可畏种创造数组的章程是由此Array()函数完毕:

new Array(1, 2, 3); // 创建了数组[1, 2, 3]

而是,出于代码的可读性思考,刚烈提出直接行使[]

数组的因素得以透过索引来访谈。请小心,索引的开始值为0

var arr = [1, 2, 3.14, 'Hello', null, true];
arr[0]; // 返回索引为0的元素,即1
arr[5]; // 返回索引为5的元素,即true
arr[6]; // 索引超出了范围,返回undefined

数据类型

Computer看名称就能够想到其意义正是足以做数学总括的机器,由此,计算机程序理所必然地得以管理各个数值。不过,Computer能管理的远不唯有数值,还足以管理公事、图形、音频、录制、网页等五花八门的数目,差异的数码,必要定义分裂的数据类型。在JavaScript中定义了以下两种数据类型:

若是大家有供给,款待访问前辈的博客https://www.liaoxuefeng.com/学习。

字符串

字符串是以单引号'或双引号"括起来的自便文本,举例'abc'"xyz"等等。请注意,''""自个儿只是意气风发种象征方法,不是字符串的生龙活虎局地,因此,字符串'abc'只有abc这3个字符。

null和undefined

null意味着叁个“空”的值,它和0以至空字符串''不同,0是叁个数值,''意味着长度为0的字符串,而null表示“空”。

在任何语言中,也会有相同JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None代表。可是,在JavaScript中,还会有三个和null类似的undefined,它表示“未定义”。

JavaScript的设计者希望用null表示三个空的值,而undefined表示值未定义。事实申明,那并不曾什么卵用,区分两个的含义相当小。大多数动静下,大家都应该用nullundefined独自在认清函数参数是还是不是传递的场所下有用。

strict模式

JavaScript在安顿之初,为了便利初行家学习,并不强制供给用var注脚变量。这几个安顿不当带给了严重的结果:如果三个变量没有通过var发明就被应用,那么该变量就机关被发明为全局变量:

i = 10; // i现在是全局变量

在同一个页面包车型客车不等的JavaScript文件中,要是都毫无var申明,正巧都利用了变量i,将促成变量i相互影响,发生难以调节和测验的怪诞结果。

使用var申明的变量则不是全局变量,它的限定被节制在该变量被发明的函数体内(函数的概念将稍后解说),同名变量在分歧的函数体内互不冲突。

为了修补JavaScript那风姿洒脱严重设计破绽,ECMA在世襲标准中推出了strict形式,在strict格局下运作的JavaScript代码,强制通过var证明变量,未使用var证明变量就利用的,将导致运营错误。

启用strict方式的章程是在JavaScript代码的首先行写上:

'use strict';

那是四个字符串,不帮助strict情势的浏览器会把它看做一个字符串语句实践,扶持strict情势的浏览器将翻开strict格局运维JavaScript。

不用var表明的变量会被视为全局变量,为了制止那生机勃勃弱点,全体的JavaScript代码都应该使用strict形式。大家在后头编写的JavaScript代码将全方位用到strict格局。

比较运算符

当大家对Number做相比时,可以经过相比较运算符得到一个布尔值:

2 > 5; // false
5 >= 2; // true
7 == 7; // true

实则,JavaScript允许对自由数据类型做相比较:

false == 0; // true
false === 0; // false

要极度注意相等运算符==。JavaScript在设计时,有三种相比较运算符:

率先种是==比较,它会自动调换数据类型再比较,比超级多时候,会收获那二个古怪的结果;

第三种是===正如,它不会活动转换数据类型,假若数据类型不等同,再次来到false,假使相像,再相比。

鉴于JavaScript那么些规划缺欠,不要选拔==JavaScript学习笔记(一)——数据类型和变量彩世界平台官方网址。比较,始终坚持不渝使用===比较。

另三个莫衷一是是NaN其生机勃勃特别的Number与富有别的值都不对等,包涵它和煦:

NaN === NaN; // false

唯风度翩翩能肯定NaN的办法是由此isNaN()函数:

isNaN(NaN); // true

最后要静心浮点数的也正是相比较:

1 / 3 === (1 - 2 / 3); // false

那不是JavaScript的布置性缺欠。浮点数在运算进程中会发生相对误差,因为计算机不或者准确表示最棒循环小数。要相比较四个浮点数是或不是等于,只可以计算它们之差的相对值,看是还是不是低于有个别阈值:

Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

数据类型和变量

阅读: 312523


本文由彩世界开奖app官网发布于前端技术,转载请注明出处:JavaScript学习笔记(一)——数据类型和变量彩世

关键词: JavaScript js