一、变量
相当于存放一个值,定义一个变量命名规则如下:
1.变量必须以字母开头变量
2.也能以 $ 和 _ 符号开头
3.变量名称对大小写敏感(y 和 Y 是不同的变量)
示例代码:
<script>
// 原来写的语句(变量先用后声明)
console.log(num);
var num = 10;
// 实际运行效果(变量提升现象)
var num;
console.log(num);
num = 10;
</script>
二、数据类型
JavaScript 是一种动态类型语言,这意味着同一个变量可以用作不同类型的数据。JavaScript 的数据类型主要分为两大类:原始数据类型和引用数据类型。
原始数据类型包括:
-
字符串(String):用于表示文本数据,如 "Hello World"。
-
数字(Number):JavaScript 中只有一种数字类型,可以是整数或浮点数。
-
布尔(Boolean):只有两个值,true 或 false。
-
空(Null):表示没有任何对象值。
-
未定义(Undefined):变量已声明但未赋值时的状态。
引用数据类型包括:
-
对象(Object):由键值对组成的集合。
-
数组(Array):由索引组织的元素集合。
-
函数(Function):可执行的代码块。
代码:
//字符串 string
var str="Good morning!";
document.write(str + " -> 数据类型:"+ typeof str + "<br>");
//双引号包含带单引号的字符串 string
var str2="This is 'Tom'";
document.write(str2 + " -> 数据类型:"+ typeof str2 + "<br>");
//单引号包含带双引号的字符串 string
var str3='This is "Tom"';
document.write(str3 + " -> 数据类型:"+ typeof str3 + "<br>");
// 数字 number
var x1=65.30;
document.write(x1 + " -> 数据类型:"+ typeof x1 + "<br>");
// 数字 number
var x2=65;
document.write(x2 + " -> 数据类型:"+ typeof x2 + "<br>");
// 数字 number
var y=117e3;
document.write(y + " -> 数据类型:"+ typeof y + "<br>");
// 数字 number
var z=117e-3;
document.write(z + " -> 数据类型:"+ typeof z + "<br>");
// 布尔值 boolean
var x=true;
document.write(x + " -> 数据类型:"+ typeof x + "<br>");
// 对象 object (对象类型下的数组类型)
var persons=new Array("Tom","Jack","Kate");
document.write(persons + " -> 数据类型:"+ typeof persons + "<br>");
// 未定义类型 undefined
var person1;
document.write(person1 + " -> 数据类型:"+ typeof person1 + "<br>");
var person2=null;
document.write(person2 + " -> 数据类型:"+ typeof person2 + "<br>");
</script>
效果如下:
特殊情况:尽管 null 是一个表示空值的特殊关键字,
但 typeof null 会返回 "object"。这是一个著名的 JavaScript 特性, 虽然有些令人困惑,但已经存在了很长时间。
三、运算符
加减乘除运算:+ - * /
取余:%
自增以及自减:
var a = 1;
var b = 1;
console.log(++a); // 2
console.log(--b); // 0
++a相当于a+b
--b相当于a-b
注意:
自增和自减运算符有一个需要注意的地方,就是放在变量之后,会
先返回变量操作前的值,再进行自增/自减操作;放在变量之前,会
先进行自增/自减操作,再返回变量操作后的值。
<script>
var x = 1;
var y = 1;
// 放在变量后
console.log(x++); // 1 即返回: x
console.log(x); // 2
// 放在变量前
console.log(++y); // 2 即返回: y+1
</script>
比较运算符:
使用=时,js会将字符串类型等同于int类型,不像Java那样必须先说明类型
而使用===时,是绝对等于,数据类型必须相同时才会相等
<script>
var num1 = 10 ;
var num2 = 10 ;
var num3 = "10";
console.log(num1 == num2); // true
console.log(num1 === num2); // true
console.log(num1 === num3); // false
</script>
取反运算符:
<script>
console.log(!undefined); // true
console.log(!null); // true
console.log(!0); // true
console.log(!NaN); // true
console.log(!""); // true
console.log(!888); // false
console.log(!'you are my baby'); // false
</script>
NaN的意思是“Not a Number”,即“非数值”或“不是一个数值”,它用于表示一个本来要返回数值的操作数未返回数值的情况。
NaN通常出现在数学运算中,以下几种情况可能导致NaN的产生:
除以0:在进行除法运算时,如果除数为0,那么结果就无法定义,通常会被设置为NaN。
非法数学运算:当进行一些非法数学运算时,比如对负数进行平方根运算,结果也会被设置为NaN。
数据类型不匹配:在类型转换时,如果类型转换失败或者转换后的结果不是有效数值,结果也会被设置为NaN。
数值溢出:当进行数值计算时,如果计算结果超出了所能表示的范围,结果也会被设置为NaN。
缺失数据:在某些数据分析任务中,如果数据中存在缺失值,那么在进行数据计算时,结果也会被设置为NaN。
且运算符:&&
真真为真,真假为假,都为真才真
<script>
console.log(10 < 20 && 10 > 5); // true
console.log(10 > 20 && 10 > 5); // false
</script>
或运算符:||
真假为真,两个一个真则真
<script>
console.log(10 < 20 || 10 > 5); // true
console.log(10 > 20 || 10 > 5); // true
console.log(10 > 20 || 10 < 5); // false
</script>
四、程序控制语句
包括:顺序结构、分支结构、循环结构等