JavaScript基础
JavaScript语法
![]()
script标签
![]()
变量与数据类型
标识符
- 在JavaScript中,所有一切都区分大小写(比如变量名、函数名、属性名),标识符要求
- 第一个字符必须是字母或者_、$
- 其他字符可以是字母、_、$、数字
- ECMAScript规范为驼峰式格式:myFirstName
- 关键字、保留字、true、false、null不能作为标识符
变量的定义
- JavaScript是一个弱类型语音,定义变量不需要指定数据类型,比如
- a=3;b="10";a="abc",
- 甚至不需要指定:var a,var称为操作符,如果变量定义的时候没有设置变量值,变量会保存一个特殊值:undefined
- 数据类型
- Undefined:变量已定义,值未定义,只有一个值“undefined”
- Boolean:布尔值(true,false)
- String:字符串类型
- Number:数字类型,除数字值以外,还有一个特殊值:NaN,表示得到一个非数字值
- Object:对象类型
- Function:函数类型
- Null:空对象指针,只有一个值null
操作符
- 自增、自减运算符:++、--
- 一元运算符:+、-
- 加减运算符:+、-
- 乘性运算符:*、/、%、**
数据类型转换
变量转换为布尔值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 其他数据类型转换为布尔类型Boolean
数据类型 布尔值:true 布尔值:false
String 任何非空字符串 ""
Number 任何非零数字 0或NaN
Object 任何对象 null
Undefined Undefined
-->
<script type="text/javascript">
//Boolean("")
string1 = ""
string2 = " "
num1 = 1
num2 = -1
num3 = 0
num4 = Infinity
num5 = NaN
a = null
b = new Object()
var c
</script>
</body>
</html>
Boolean("")
false
Boolean(" ")
true
>>>Boolean(1)
true
>>>Boolean(-1)
true
>>>Boolean(0)
false
>>>Boolean(null)
false
>>>Boolean(NaN)
false
>>>Boolean(Infinity)
true
>>>Boolean(Object)
true
>>>var c
undefined
>>>Boolean(c)
false
>>>Boolean(undefined)
false
变量转换为数字
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 其他类型转换为数字:
Number()、parseInt()、parseFloat()
Number()可以转换任何类型到数字类型
parseInt()、parseFloat()转换字符串类型为数字类型
数据类型 转换结果
Boolean true转为1,false转为0
Undefined NaN
String "只包含数字(包括浮点数)的字符串,转换为十进制数
包含16进制"0x"格式的字符串,转换为十进制
空字符串为0
其他的转换为NaN"
null 0
-->
<script type="text/javascript">
// Boolean
// true
// false
// Undefined
// var a
// String
string1 = ""
string2 = " "
a = "a"
b = ".1"
c = "10"
d = "10.1"
e = "a10"
f = "10px"
g = "10.5px5"
h = "0x15"
i = null
//Object
var o = new Object()
</script>
</body>
</html>
>>>Number(true)
1
>>>Number(false)
0
>>>Number(null)
0
>>>parseInt(false)
NaN
>>>parseInt(0)
0
>>>parseInt(2)
2
>>>parseInt(undebug)
NaN
>>>parseInt(undefined)
NaN
>>>parseFloat(true)
NaN
>>>parseFloat(false)
NaN
>>>parseFloat(undefined)
NaN
>>>parseFloat(null)
NaN
变量转为字符串
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 其他类型转换为数字:
String()、toString()
String():可以转换任何类型为字符串类型
toString():为大部分值自带的方法,转换为数字类型时,可以提供一个进制参数
数据类型 转换结果
Boolean true转为"true",false转为"false"
Undefined "undefined"
null值 "null"
-->
<script type="text/javascript">
// Boolean
// true
// false
// Undefined
// var a
// Number
c = "10"
d = "0x11"
e = "011"
f = "10.1"
g = Infinity
h = NaN
// null
i = null
//Object
var o = new Object()
</script>
</body>
</html>
操作符自增自减
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
// 后置a++,a--
a = 0
a++
b = a++
// 前置++a,--a
a = 0
++a
b = ++a
//两者区别:
//1、前置:先求a自增值,再运算a(自增值参与运算)
//2、后置:先自原a运算,再求a自增值(自增值不参与运算)
</script>
</body>
</html>
操作正负值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
// +,-
a = +0
b = -0
// 字符串
c = -"10"
d = "-100.1"
e = -"0xAF"
</script>
</body>
</html>
操作符加减运算
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 运算规则:
1、如果超出范围,返回Infinity或者-Infinity
2、如果一个操作数是NaN,则结果还是NaN
3、加法运算
Infinity + Infinity 为Infinity;
-Infinity + -Infinity 为-Infinity
4、减法运算
Infinity - Infinity 为NaN
-Infinity - -Infinity 为NaN
Infinity - -Infinity 为Infinity
-Infinity - Infinity 为-Infinity
+0 + +0 为+0;+0 - +0 为-0
-0 + -0 为-0;-0 - 0 为-0;-0 - -0 为0
+0 + -0 为0
加法操作如果两个操作数都是字符串,则两个操作数凭拼接起来
加法操作如果一个操作数为字符串,一个不是,则另一个先转换为字符串,在进行计算
减法操作如果有一个操作数不是数字,那么会先转换成字数值再进行操作
-->
<script type="text/javascript">
// 数字加减
a = 10
b = 10
c = a + b
// 字符串加减
c = "10"
b = "100.1"
d = "0xAF"
//数字 + 字符串
a = "px"
b = 10
c = b + a
</script>
</body>
</html>
操作符乘性运算
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<!-- 运算规则:
1、数值之间按照正常计算
如果结果超出范围,则返回Infinity或者-Infinity
如果有一个操作数是NaN,则结果是NaN
2、Infinity * 0 = 0
Infinity*其他数值,结果为Infinity
3、如果一个操作数不是数字,则会先用Number转换为数字
0 / 0 = NaN
任何数/0 = Infinity
任何数/Infinity,结果为Infinity
-->
<script type="text/javascript">
// 数字之间乘除运算
a = 10
b = 10
c = a * b
// 取模运算
/*
Infinity%任何数,结果为NaN
任何数%0,结果为NaN
Infinity%Infinity,结果为NaN
任何数%Infinity,结果为被除数
0%任何数,结果为0
*/
c = "1000" % 3
c = "1000px" % 3
// 幂运算 Math.pow()
c = a ** 2
</script>
</body>
</html>
![]()