JavaScript标准教程之基本语法
2017-09-28 20:44
190 查看
2.1概述
1.如果只是声明变量而没有赋值,则该变量的值是不存在的,JavaScript使用
如果第二次声明的同时还赋值了,则会覆盖掉前面的值。
JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。另外,如果不是var声明的不会变量提升!
比如下面这行代码:
4.标签
相当于定位符,用于跳转到程序的任意位置。通常与break和continue同时使用:
一般来说javascript有六种数据类型
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如"Hello World")
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即此处目前没有任何值
null:表示空缺,即此处应该有一个值,但目前为空
对象(object):各种值组成的集合
通常,我们将数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。
对象又可以分成三个子类型。
狭义的对象(object)
数组(array)
函数(function)
6.null和undefined
在if语句中,它们都会被自动转为false,相等运算符(==)甚至直接报告两者相等, 在严格比较(===)下是false.
7.布尔值
如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。
需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。
2.2数值
1.整数和浮点数
JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
这就是说,在JavaScript语言的底层,根本没有整数,所有数字都是小数(64位浮点数)。容易造成混淆的是,某些运算只有整数才能完成,此时JavaScript会自动把64位浮点数,转成32位整数,然后再进行运算
JavaScript涉及到小数的运算都要特别小心!
a Number)
⑴NaN不属于任何值,包括他本身
NaN === NaN //false
NaN == NaN //false⑵布尔运算当做false
Boolean(NaN) // false⑶NaN与任何数(包括它自己)的运算,得到的都是NaN。
isNaN(NaN) // true
isNaN(123) // false但是,isNaN只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串。
3.Infinity
Infinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。
Infinity === -Infinity // falseInfinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)。Infinity与NaN比较,总是返回false。
4.parseInt()
用于将字符串转为整数。parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN。
⑴字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') //
4000
15⑵如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。
parseInt('abc') // NaN
parseInt('.3') // NaN
parseInt('') // NaN
parseInt('+') // NaN
parseInt('+1') // 1
1.如果只是声明变量而没有赋值,则该变量的值是不存在的,JavaScript使用
undefined表示这种情况。
var a; a // undefined2.如果使用
var重新声明一个已经存在的变量,是无效的。
var x = 1; var x; x // 1上面代码中,变量
x声明了两次,第二次声明是无效的。但是:
如果第二次声明的同时还赋值了,则会覆盖掉前面的值。
var x = 1; var x = 2; x = 2;3.变量提升
JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。另外,如果不是var声明的不会变量提升!
比如下面这行代码:
console.log(a); var a = 1;真正运行的是下面的代码:
var a; console.log(a); a = 1;输出:undefined
4.标签
相当于定位符,用于跳转到程序的任意位置。通常与break和continue同时使用:
top: for (var i = 0; i < 3; i++){ for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) break top; console.log('i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0
top: for (var i = 0; i < 3; i++){ for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) continue top; console.log('i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0 // i=2, j=0 // i=2, j=1 // i=2, j=25.数据类型
一般来说javascript有六种数据类型
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如"Hello World")
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即此处目前没有任何值
null:表示空缺,即此处应该有一个值,但目前为空
对象(object):各种值组成的集合
通常,我们将数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值。
对象又可以分成三个子类型。
狭义的对象(object)
数组(array)
函数(function)
6.null和undefined
在if语句中,它们都会被自动转为false,相等运算符(==)甚至直接报告两者相等, 在严格比较(===)下是false.
7.布尔值
如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。
undefined null false 0 NaN ""或''(空字符串)
需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。
if ([]) { console.log(true); } // true if ({}) { console.log(true); } // true
2.2数值
1.整数和浮点数
JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以,1与1.0是相同的,是同一个数。
1 === 1.0 // true
这就是说,在JavaScript语言的底层,根本没有整数,所有数字都是小数(64位浮点数)。容易造成混淆的是,某些运算只有整数才能完成,此时JavaScript会自动把64位浮点数,转成32位整数,然后再进行运算
JavaScript涉及到小数的运算都要特别小心!
0.1 + 0.2 === 0.3 // false 0.3 / 0.1 // 2.9999999999999996 (0.3 - 0.2) === (0.2 - 0.1) // false2.NaN
NaN是JavaScript的特殊值,表示“非数字”(Not
a Number)
⑴NaN不属于任何值,包括他本身
NaN === NaN //false
NaN == NaN //false⑵布尔运算当做false
Boolean(NaN) // false⑶NaN与任何数(包括它自己)的运算,得到的都是NaN。
NaN + 32 // NaN NaN - 32 // NaN NaN * 32 // NaN NaN / 32 // NaN⑷判断NaN方法
isNaN(NaN) // true
isNaN(123) // false但是,isNaN只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串会被先转成NaN,所以最后返回true,这一点要特别引起注意。也就是说,isNaN为true的值,有可能不是NaN,而是一个字符串。
3.Infinity
Infinity有正负之分,Infinity表示正的无穷,-Infinity表示负的无穷。
Infinity === -Infinity // falseInfinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)。Infinity与NaN比较,总是返回false。
4.parseInt()
用于将字符串转为整数。parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN。
⑴字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分。
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') //
4000
15⑵如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN。
parseInt('abc') // NaN
parseInt('.3') // NaN
parseInt('') // NaN
parseInt('+') // NaN
parseInt('+1') // 1
相关文章推荐
- JavaScript 标准参考教程--基本语法 学习笔记
- JavaScript 标准参考教程之【基本语法】
- JavaScript基本语法学习教程
- JavaScript基本语法学习教程
- Javascript标准参考教程(阮一峰)笔记总结---语法篇
- 小白的零基础JavaScript全栈教程(1)-简介和基本语法
- C语言-基本语法教程
- JavaScript 正则表达式上——基本语法
- JavaScript的基本语法
- Thymeleaf教程 (五) Thymeleaf标准表达式语法(下)
- javascript学习(一):javascript基本语法
- JavaScript基本语法
- 读《JavaScript 标准参考教程(alpha)阮一峰》(上)
- javascript 学习笔记1基本语法
- JavaScript 正则表达式上——基本语法
- Apple Swift 中文教程 高速參考 基本的语法
- 全新java初学者实践教程17(java SE5.0版)--基本语法6--final关键字
- JavaScript---基本语法
- JavaScript学习总结_三.基本语法