1.快速入门
<1>基本语法
<script>
//定义变量
var score = 90;
//条件控制
if (score >= 90) {
alert("优秀!");
} else {
alert("其它!");
}
</script>
<2>严格检查模式
<script>
'use strict'
</script>
2.数据类型
<1>number
不区分小数和整数。
浮点数问题:
1/3===(1-2/3)
结果为: false,表明会存在精度问题。
<2>字符串
<3>布尔值
<4>逻辑运算
<5>比较运算符
/*
=:赋值
==:判断是否等于(不区分数据类型)
===:判断是否等于(区分数据类型)
*/
<6>NaN
Not a Number 非数
NaN===NaN
结果为: false
<7>null
表示空
<8>undefined
表示未定义
<9>数组
var arr = [1, 2, null, "hello world"];
<10>对象
var person = {
name: "张三",
age: 20,
score: 90
}
<11>map
var map = new Map([['1', "张三"], ['2', "李四"]]);
var name = map.get("1");
<12>set
var set = new Set([1, 2, 3]);
set.add(4);
set.delete(4);
3.循环和迭代器
<1>循环
var arr = [1, 2, 3, 4, 5, 6];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
<2>迭代器
var arr = [1, 2, 3, 4, 5, 6];
//遍历下标
for (let i in arr) {
console.log(i);
}
//遍历元素
for (let i of arr) {
console.log(i);
}
4.函数
<1>定义函数
//绝对值函数 方式一
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
console.log(abs(-100));
//方式二
var abs = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
console.log(abs(-100));
//不存在参数时抛出异常
var abs = function (x) {
if (typeof x !== 'number') {
throw 'Not a number';
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
//arguments,将传递进来的元素转化为数组
var abs = function (x) {
//console.log("x=>+x");
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
<2>变量的作用域
//变量的作用域
function test1() {
var x = 1;
x = x + 1;
}
x = x + 1;
test1()
/*报错信息:VM20:1 Uncaught ReferenceError: x is not defined
at <anonymous>:1:1*/
//相同的变量在不同的函数里不冲突
function test2() {
var x = 1;
x = x + 1;
}
function test3() {
var x = 1;
x = x + 1;
}
//内部函数可以访问外部函数的成员,反之则不行
function test4() {
var x = 1;
function test5() {
var y = x + 1;
}
var z = x + 1;
return z;
}
//内部函数和外部函数中变量同名时,内部函数会屏蔽外部函数中的同名变量
function test6() {
var x = 1;
function test7() {
var x = 'A';
console.log('inner' + x);
}
console.log('inner' + x);
test7();
}
//js的执行引擎会自动提升作用域,但是不会提升变量的赋值
function test8() {
var x = "x" + y;
console.log(x);
var y = "y";
}
//变量定义放在函数头部
function test9() {
var x = 1,
y = x + 1,
z, i, a;
}
//全局变量
var x = 1;
function test10() {
console.log(x);
}
//全局对象window
var x = 'xxx';
alert(x);
alert(window.x);
//let表示局部变量
function test11() {
for (let i = 0; i < 100; i++) {
console.log(i);
}
let i = 0;
console.log(i + 1);
}
//常量
const PI = '3.14';
console.log(PI);
<3>方法
//方法就是将函数放入对象里
var test = {
name: '张三',
birth: 2000,
age: function () {
var now = new Date().getFullYear();
return now - this.birth;
}
}
5.内部对象
<1>Date日期对象
var now = new Date();
now.getFullYear();//年
now.getMonth();//月
now.getDate();//日
now.getDay();//星期几
now.getHours();//时
now.getMinutes();//分
now.getSeconds();//秒
now.getTime();//时间戳
//将时间戳转化为标准时间
console.log(new Date(now.getTime()));
**<2>**JSON对象
JSON(JavaScript Object Notation,js对象简谱)是一种轻量级的数据交换格格式。
var user = {
name: "张三",
age: "20",
sex: "男"
}
var jsonUser = JSON.stringify(user);
console.log(jsonUser);
console.log(JSON.parse(jsonUser));