3.QML中的JavaScript(1)- JavaScript基础

原创

1. JavaScript的语法

1.1 区分大小写

同C++一样,JavaScript是区分大小写的,也就是说Number和number是两个不同的变量。


1.2 弱类型

与Python相同,JavaScript是弱类型的即变量没有特定的类型。与Python不同,声明变量时需要在前面加上关键字var, 下面是一个简单的示例:

var number = 10
console.log(number)
number = 'Hello JavaScript'
console.log(number)

程序的输出结果为:
qml: 10
qml: Hello JavaScript


1.3 断行

多条语句写在同一行,需要使用分号(;)分隔,不同行可以不使用分号分隔,当然也可以加上分号都行。

var i = 10; var j = 20; var k = 30;
var number = 50;
var numberStr = 'Number is 50'

1.4 注释

JavaScript中的注释同C++相同,单行注释使用(//), 多行注释使用(/**/)

// 这个是单行注释
var i = 20

/*这个是多行注释
Hello JavaScript
*/
var str = 'Hello JavaScript'

1.5 代码块

同C++相同,代码块使用大括号({…})之间。

function func() {
    console.log('Hello JavaScript')
}
func()

2. 变量

2.1 变量的声明

前面讲过,声明变量的时候需要在前面加上var关键字

var number1 = 10; var number = 20;
var str1 = 'Hello World' // 使用单引号,表示字符串
var str2 = "Hello JavaScript" // 使用双引号,表示字符串

2.2 变量的命名规则

变量的命名遵循如下两个规则:

  • 首字母必须是字母、下划线(_)或美元符号($)
  • 余下的字符可以是字母、数字、下划线(_)或美元符号($)
var number1 = 20
var $number = 30
var _number = 40

3. 数据类型

3.1 Undefined类型

Undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值为undefined。

var number
console.log(number, typeof number)

typeof运算符可以检查变量的类型,下面为typeof返回值对应的数据类型

  • undefined, 变量为Undefined
  • boolean, 变量为Boolean
  • number, 变量为Number
  • string, 变量为String
  • object, 变量为引用类型或Nill类型

输出结果为:
qml: undefined undefined


3.2 Null类型

Null类型也只有一个值,即null
可以将一个变量设置为null类型,然后据此实现一些逻辑。


3.3 Boolean类型

Boolean类型有两个值,true和false


3.4 Number类型

无论是整数还是浮点数,都属于Number类型。

  • 表示十六进制数时需要在数字前面加上0x, 如0xAA
  • 表示八进制数时需要在数字前面加上0, 如044
  • 可以使用科学计数法表示浮点数,如3.14e8
  • 数字类型最大值使用Number.MAX_VALUE表示,最小值使用Number.MIN_VALUE表示
  • 当计算的值大于最大值时,它被赋值为Number.POSITIVE_INFINITY,即正无穷。
  • 当生成的值小于最小值时,它被赋值为Number.NEGATIVE_INFINITY, 即负无穷。
  • JavaScript中使用Infinity-Infinity表示无穷,他们分别和Number.POSITIVE_INFINITYNumber.NEGATIVE_INFINITY相对应。
  • 使用isFinite()方法判断是否为有穷的。
  • NaN表示非数,即not a number, 可以使用isNaN()方法判断是否为NaN类型
var number1 = 10
var number2 = 10e2
var number3 = Infinity
var number4 = 'Hello JavaScript'
console.log(number1, number2, number3)
console.log(isFinite(number3), isNaN(number4))

运行结果:
qml: 10 1000 Infinity
qml: false true


3.5 String类型
  • 字符串字面量使用单引号(‘)或双引号(“)包围来声明
  • 可以使用转义字符’\n’,‘\\’等
  • 使用’\0nnn’表示八进制数,‘\xnn’表示十六进制数,‘\unnnn‘表示Unicode字符。

4. 类型转换

  • Boolean、Number、String都有toString()方法可以将他们的值转为字符串类型。
  • parseInt()方法可以转成Int类型,parseFloat()可以转换为float类型的数字
    • 这两个函数只能用于String类型,负责返回NaN
    • 这两个类型会扫描字符串知道遇到第一个非数字字符时停止,返回转换结果。如parseInt(‘2018年’)返回值为2018,parseFloat(‘3.14.15’)返回值为3.14,parseInt(Hello)返回值为NaN
  • Boolean(), 强制类型转换为Boolean类型。空字符串、数字0、undefined和null返回false.其他的返回值为true。
  • Number()强制转换为Number类型。与函数parseInt()parseFloat()不同,它转换的为整个值,即Number(‘2018年’)返回值为NaN
  • String()可以转换为String类型。与toString()不同,它可以转换undefined类型和null类型转换为字符串
var number = '2018年'
var number2 = '3.14.15'
var number3 = null

console.log(parseInt(number), parseFloat(number2))
console.log(parseInt(number).toString(), parseFloat(number2).toString())
console.log(Boolean(number3))
console.log(Number(number))
console.log(String(number3))

运行结果:
qml: 2018 3.14
qml: 2018 3.14
qml: false
qml: NaN
qml: null

不会飞的纸飞机
扫一扫二维码,了解我的更多动态。

下一篇文章:4.QML中的JavaScript(2)- 函数、运算符、控制语句