变量
Javascript是一门弱类型语言,对于变量的声明并不严格
可以通过 var 变量名 = 值
的方式进行声明和赋值
基本数据类型
基本数据类型包括五种
- number - 数值类型
- string - 字符串类型
- boolean - 布尔类型
- undefined - 未定义类型
- null - 空类型
//number - 数值类型
var num = 100;
console.log(num);
var num = 100.123;
console.log(num);
//string - 字符串类型
var str = "这是字符串"
console.log(str);
var str = '这也是字符串'
console.log(str);
//boolean - 布尔类型
var bool = true;
console.log(bool);
console.log(!bool);
//undefined - 未定义类型
var val;
console.log(val);
var val = undefined;
console.log(val);
//null - 空类型
var nu = null;
console.log(nu);
基本数据类型的特殊点
//number类型
//Infinity表示无穷大,Infinity+(-Infiniaty)输出NaN
var a1 = Infinity;
var a2 = -Infinity
console.log(a1 + a2)
//string类型
//除了 + 是字符串的拼接,其余都是算术运算符
var num = "100"
var num1 = "20"
console.log(num + num1)
console.log(num - num1)
console.log(num * num1)
console.log(num / num1)
console.log(num % num1)
//boolean类型
//"",0,undefined,null均表示false
if (null) {
console.log(true)
} else {
console.log(false)
}
//undefined vs null
var u = undefined
var n = null
console.log(typeof u) //undefined
console.log(typeof n) //object
//== vs ===
//== 判断两个值是否相同
//=== 判断两个值 + 类型是否相同
var i = 100
var p = "100"
console.log(i == p)//true
console.log(i === p)//false
数组
Javascript的数组可以存储多种类型,包括null
和undefined
,但是:如果是在数组中存放了undefined
,第二种遍历方式仍然会认为是有效下标,将会输出undefined
var arr = ["刘亦菲", 100]
//获取数组长度
console.log(arr.length)
//获取指定下标上的元素
console.log(arr[0])
//添加元素
arr[1] = "刘"
console.log(arr)
//超长度添加元素
arr[5] = "007"
console.log(arr)
//删除元素
delete arr[3]
console.log(arr)
console.log("-------------------------------------")
//遍历数组
for (i = 0; i < arr.length; i++) {
console.log(arr[i])
}
console.log("-------------------------------------")
//遍历元素:获取有效元素 --> undefined 是无效元素
for (i in arr) {
console.log(arr[i])
}
JS流程控制语句
流程控制语句包括:for
、while
、for-in
、do-while
、break
、continue
,用法与Java中的流程控制语句大体一致
//for循环:100以内偶数和
var sum = 0;
for (i = 0; i < 100; i++) {
if (i % 2 == 0) {
sum += i
}
}
console.log(sum)
//while循环:每个月存3000,每年张新1000,多少年存满20万
var allMoney = 0;
var money = 3000;
var month = 0;
var year = 0;
while (allMoney < 200000) {
allMoney += money
month++
if (month % 12 == 0) {
year += 1
month %= 12
money += 1000
}
}
console.log(year + "年" + month + "月")
//打印直角三角形
for(i=0;i<5;i++){
for(j=0;j<=i;j++){
document.write("*")
}
document.write("<br/>")
}
write()
与writeln()
的区别?当
document.write()
和document.writeln()
外加在页面中时,前者不会换行,后者每写一次都会换行https://www.runoob.com/jsref/met-doc-writeln.html
JS函数
函数:就是具有特定功能的代码块
function fun01() {
console.log("不带参数无返回值的函数")
}
function fun02(a) {
console.log("带参数的函数" + a)
}
function fun03() {
return "带返回值的函数"
}
//在JS中函数并不存在重载的关系,如果存在相同名的函数会被覆盖
function fun04(a, b) {
console.log(a + b)
}
function fun04(a, b, c) {
console.log(a + b + c)
}
//函数的递归:求n的阶乘
function fun05(n) {
if (n != 1) {
return fun05(n - 1) * n
} else {
return 1
}
}
fun01();
fun02(2);
var re = fun03();
console.log(re)
fun04(10, 20)
fun04(10, 20, 30)
var num = fun05(5)
console.log(num)
JS中的预定义函数
预定义函数就是内置的方法,包括parseInt()
、parseFloat()
、isFinite()
、isNan()
,eval()
等
console.log("将数据解析成整数:" + parseInt("123.789"))//直接去掉小数部分
console.log("将数据解析成小数:" + parseFloat("123.789"))
console.log("判断字符串是否是数字:" + isFinite("123.789"))
console.log("判断字符串是否是非数字:" + isNaN("123.789"))
var str = "alert('这是一个被转化后的字符串')"
eval(str)