1.介绍
是一种编程语言(基础知识+类库+第三方的东西),而且是一种弱类型语言
组成:ECMAScript(基础语法)+DOM(文档对象模型)+BOM(浏览对象模型)
ECMAScript:变量、数据类型、流程语句、注释...(基础语法)
DOM:浏览器提供 js操作html的 api(应用程序编程接口) api简单理解为方法 函数
BOM: 浏览器提供 js操作浏览器的api(应用程序编程接口)
2.js的运行环境(宿主环境) 环境不同充当的角色不同
浏览器 (js在此时充当脚本语言或者前端语言)
nodejs(平台)=>采用的是谷歌的v8引擎 (js在此时充当后端语言) 只能执行ECMAScript里的
3.js的特点
1)既可以作为前端脚本语言,还可以作为后台语言 (取决于它运行的平台)
2)解释型语言,不需要编译,直接由浏览器或者nodejs提供的js解释器去解析
3)弱类型语言 (语法没那么严谨)
4)从上往下顺序执行
4.如何在html中使用js
1)内部js,使用script标签,将js代码写入标签(html和js没有分离) 相当于内联样式
在<head>标签体中添加<script>元素,然后将JS代码填写进来即可
eg: <script>
console.log('你好世界!')
</script>
2)外部js,定义一个后缀名为.js的文件,然后在html中使用script标签的src属性引入(html和js分离)
在<head>标签体内添加<script>元素,使用script标签的src属性将将JS文件导入进来
eg: <script src="./hello.js"></script>
5.注释(会被浏览器或node平台忽略掉)
1)单行注释
//注释内容
2)多行注释
/*
注释内容
*/
3)作用 1.记录你的编辑思路
2.便于后期代码的维护
3.增加代码量
6.关键字和保留字
关键字:js中具有特殊功能的词 eg: var if else等
保留字:将来可能成为关键字
7.变量
是用来保存值的容器,在js中变量是动态的,它可以保存任意数据类型
定义变量时使用var关键字!!!
变量的使用
1)定义变量
var a
2)初始化变量 右边赋值给左边的变量
a = 2
3)定义变量并且初始化
var b = 2
4)定义多个变量
var a = 1,b = 2,c = 3
5)变量的提升
var a = 1
console.log(a)
打印1
console.log(a)
var a = 1
打印 未定义
使用var定义的变量,这个变量会提升
变量名的命名规则
1)变量名由字母,数字,下划线以及$组成。
2)不要使用下划线或者数字作为变量名的开头
3)变量名应该具有一定的意义,使用小驼峰命名规则 var userAgeTotal = "";
4)不要使用关键字或是保留字
8.数据类型 (分为基本数据和引用数据)
1) 基本数据类型: (用来保存单个值) !!!!!
Number 数字类型 1,2,3,1.1
1.NaN 非数字 表示一个本来要返回数值的操作数未返回数据的情况
console.log(isNaN(NaN)) 判断是不是NaN
2.数值的范围
Number.MIN_VALUE 最小值 console.log(Number.MIN_VALUE) 打印结果 5e-324
Number.MAX_VALUE 最大值 console.log(Number.MAX_VALUE) 打印结果 1.7976931348623157e+308
3.检测数值的范围
isFinite()函数 超过最大值或最小值=>false Var a = isFinite(9/0);
String 字符串
1.既可以使用单引号包起来,也可以使用双引号包起来 '' ""
2.属性:length 用来获取字符的长度 console.log(s.length)
Boolean 布尔类型
布尔类型,取值为 true/false,通常用于条件判断
var a = false;
null 空的引用
var a = null;
表示空对象的指针,一般我们不知道要保存成什么的时候使用null占位
undefined 未定义类型 undefined
未定义或者未初始化 var a; 和 var a = undefined;
打印console.log(a); //结果是undefined
2)引用数据类型:(除了基本数据类型外的数据都叫引用数据)
对象Object {} 对象由键值对组成,通过使用大括号将所有键值对括起来
var dog = {name : 'Spot', breed : 'Dalmatian' };
函数Function (特殊的对象) 函数是代码执行单元
function add(a,b){
return a + b;
}
数组Array (特殊的对象) 数组是一个特殊的对象,包含了多个值,值与值之间使用逗号分隔开,所有的值通过中括号括起来。
var myNameArray = ['Chris', 'Bob', 'Jim'];
var myNumberArray = [10,15,40];
正则表达式 (特殊对象)
3)使用typeof判断数据类型
返回该变量名所指向数据的类型
语法: typeof 变量名
返回值如下:
"undefined" 未定义
"boolean" 布尔类型
"string" 字符串
"number" 数值
"object" 对象或者null或者数组
"function" 函数
<script>
// 打印最大值
console.log(Number.MAX_VALUE)
var a
console.log(a) //打印出undefined
// 定义变量 n s u l
var n = 10
var s = 'hello word'
var u = undefined
var l = null
// 打印变量s的长度
console.log(s.length) //10
// String 字符字面量,转义字符 打印 \n(换行)
console.log('123\n234') //123
234
// 定义对象
var obj = {}
// 定义数组
var arr = []
// 定义函数
var addHandler = function() {
}
// 使用typeof判断数据类型
console.log(typeof s, '--------------')
console.log(typeof n, '--------------')
console.log(typeof u, '--------------')
console.log(typeof l, '--------------')
console.log(typeof obj, '--------------')
console.log(typeof obj, '--------------')
console.log(typeof addHandler, '--------------')
</script>