什么是js语言:就是一种脚本语言(一段功能代码)
组成: 1.ES语法:ECMAScript、主要版本ES5和ES6
2. DOM:文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展标志语言的标准编程接口
3. BOM:浏览器对象模型(Browser Object Model),提供了独立于内容的、可以与浏览器窗口进行互动的对象结构;且由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。
三种引入:
- 行间式
出现在标签中的全局事件属性中
this代表该标签, 可以访问全局属性, 再访问具体操作对象(eg: this.style.color = "red")
- 内联式
出现在script脚本标签中
可以通过标签的id唯一标识,在js代码块中操作页面标签
js采用的是小驼峰命名规范, 属于解释性语言(由上至下依次解释执行)
- 外联式
通过script标签的src属性链接外部js文件, 链接后, script标签本身内部的js代码块将会被屏蔽
在任何位置都可以使用this对象,当this对象不指向任意一个标签时,代表的是window对象
- js具体出现的位置
head标签的底部: 依赖性js库
body标签的底部(body与html结束标签的之间): 功能性js脚本
变量的定义:
四种定义变量的方式
语法: 关键词 变量名 = 变量值
num = 10; // 省略关键词, 定义的为全局变量, 在任何位置定义, 在任何位置都可以访问, 但不建议使用
var num = 10; // var关键词, 无块级作用域, 定义在块级作用域中的变量, 外界也可以访问
let num = 20; // let关键词, 有块级作用域, 定义在块级作用域中的变量, 外界无法访问
const NUM = 30; // const关键词,有块级作用域, 定义在块级作用域中的变量, 外界无法访问, 且变量的值不能再被二次修改, 所以为常量
/* 产生块级作用域的方式
{
直接书写
}
if语句可以产生
while语句可以产生
for语句也可以产生
*/
函数可以产生局部作用域, 除了定义在局部作用域中的全局变量(没有关键字的变量声明), 外界可以访问, 其他定义方式, 外界都不可以访问
命名规范
变量命名规范
可以由哪些组成: 字母, 数字, _, $, 中文(一般不考虑)
可以以什么开头: 字母, _, $, 中文
不能出现什么: 关键字, 保留字
提倡什么书写规范: 小驼峰, 支持_连接语法
三种弹出框
普通弹出框
alert("你丫真帅!!!");
输入框: 以字符串形式接收用户输入内容
var info = prompt("请输入内容:");
console.log(info)
确认框: 根据用户选择确认或取消, 得到 true | false 两个布尔结果
var res = confirm("你是猪吗?");
console.log(res)
数据类型
// 值类型
var a = 10; // Number 10
var a = 'abc'; // String abc
var a = true; // Boolean true
var a = undefined // undefined undefined
// 引用类型
var a = function(){} // function f(){}
var a = {} // Object {}
var a = null // Null null
// 其他Object具体体现
Array | Date | RegExp
值类型的类型转换
// 1.通过类型声明转换
Number() | String() | Boolean()
// 2.方法(函数)
parseInt('10') | parseFloat('3.14')
123..toString()
// 3.隐式转换
+'10' => 10
'' + 10 => '10'