仅用于学习
HTML
Hyper Text Markup Language 超文本标记语言
超文本:
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.
标记语言:
由标签构成的语言。
标记语言不是编程语言
css
css叫做层叠样式表,或者级联样式表,用来控制网页的样式。
- 使内容与表现完全分离
- 提高了代码的可重用性和可维护性,一个css文件可以被多个html引入,一个html文件可以引入多个css文件
js
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
脚本语言:不具备开发操作系统的能力,而是要配合其他应用程序来使用。js必须配合浏览器。
ECMAScript
语法基础
一切都区分大小写
标识符
- 以字母,下划线,美元符开头
- 剩下的可以是字母,数字,下划线,美元符
- 尽量采用驼峰命名法规范
注释
//
/*
*/
- 严格模式(脚本开始时添加“use strict”)
变量
var let const
声明提升
let暂时性死区
在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量),ES6提出了使用let和const声明变量,更加安全方便的提供我们声明变量。
var
声明变量会保留特殊值undefined
var ximingx;
console.log(ximingx); //undefined
声明变量时可以给它赋值进行初始化
var age = 18;
console.log(age); //18
var声名作用域
函数作用域
使用var定义的变量会成为包含他函数的局部变量
function sc(){
var school = "山西农业大学";
console.log(school);//山西农业大学
}
sc();
console.log(school);//error
但是函数内定义省略var会创造全局变量
function sc(){
school = "山西农业大学";
console.log(school);//山西农业大学
}
sc();
console.log(school);//山西农业大学
var 变量提升
function sc(){
console.log(school);//undefined
var school = "山西农业大学";
}
sc();
let
块作用域
if(true){
var lover = "none";
console.log(lover);//none
}
console.log(lover);//none
if(true){
let lover = "none";
console.log(lover);//none
}
console.log(lover);//error
let 不允许重复声明
let aw;
let aw;/error
嵌套使用相同的标识符不会报错
var name = "ximingx";
console.log(name); //ximingx
if(true){
var name = "x";
comsole.log(name); //x
}
let age = "18";
console.log(age); //18
if(true){
let age = "0";
comsole.log(name); //0
}
暂时性死区
let声明的变量不会被提升
let name = "ximingx";
console.log(name); //ximingx
console.log(age); //error
let age = 18;
let 在全局作用域声明的变量不会成为window对象的属性
var在全局作用域声明的变量会成为window对象的属性
let age = 18;
console.log(window.age);//undefined
for 循环中let声明的优势
for(let i = 0;i < 2;i++){
setTimeout(function(){ //setTimeout在DOM对象中出现
console.log(i);//0,1
},0)
}
for(var i = 0;i < 2;i++){
setTimeout(function(){
console.log(i);//1,1
},0)
}
const
const 声明必须要初始化
修改const变量运行时会出错
数据类型
六种简单数据类型 undefined null string number booleansymbol
复杂数据类型object
typeof
以字符串的形式返回变量的数据类型
let aw;
console.log(typeof aw);//undefined
null 被认为空对象,返回object
undefined
声明了变量但没有初始化后,会被赋给值undefined
但仍需注意
let a; console.log(a);//undefined console.log(b);error console.log(typeof a);//undefined console.log(typeof b);//undefined
null
let aw = null;
console.log(typeof aw);//object
console.log(null == undefined);//true
boolean
只有两个字面值:true false
其它数据类型可以转换为boolean值
boolean true false string 非空字符串 “” number 非零数字 0,NaN object 对象 null undefined 不存在的变量 undefined
number
let number0 = 070;
let number1 = 079;// 当成79
//当超出进制范围后会忽略0
浮点数运算会存在误差
Number.MAX_VALUE 最大值
Number.MIN_VALUE 最小值
超出范围后会变为Infinity
NaN意思是不是数值
数值转换
Number()
parseInt()
parseFloat()
DOM
BOM
HTML+CSS+JS
持续更新