JavaScript是什么
JavaScript是一种运行在客户端(浏览器) 的编程语言,用来给网页添加动态功能。JavaScript最初的目的
演示,最初的目的是为了处理表单的验证操作。
JavaScript现在的意义(应用场景)
JavaScript 发展到现在几乎无所不能。
- 网页特效
- 服务端开发(Node.js)
- 命令行工具(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 游戏开发
JavaScript和HTML、CSS的区别
- HTML:提供网页的结构,提供网页中的内容
- CSS: 用来美化网页
- JavaScript: 可以用来控制网页内容,给网页增加动态的效果
JavaScript的组成
ECMAScript - JavaScript的核心
ECMA 欧洲计算机制造联合会。
ECMAScript是JavaScript的核心,描述了语言的基本语法和数据类型,ECMAScript是一套标准,定义了一种语言的标准与具体实现无关(就是JavaScript的语法规范)。
BOM - 浏览器对象模型
一套操作浏览器功能的API
通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取分辨率等
DOM - 文档对象模型
一套操作页面元素的API
DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作。
JavaScript的书写位置和CSS类似(行内样式、嵌入样式、外部样式)
- 写在行内
<input type=“button” value=“点我试试!” “alert(‘Hello World’)” />
- 写在script标签中
<head>
<script>
alert(‘Hello World!’);
</script>
</head>
- 写在外部js文件中,在页面引入
<script src=“main.js”>
- 注意点
引用外部js文件的script标签中不可以写JavaScript代码
Javascript的输出方式
- alert() 输出:
弹出一个提示框(提示文字/警告文字) - document.write(内容) 输出:
会将输出的”内容“放置到body标签内部,并作为body标签的HTML内容。 - console.log() 输出:
JavaScript的输入方式
prompt(‘提示文字’, 默认值);
变量
什么是变量
-什么是变量
变量是你存储数据的容器。要声明一个变量你需要首先使用关键字 var
- 为什么要使用变量
在编程时要做任何有趣的事我们必须用到变量,使用变量可以方便的获取或者修改内存中的数据。
变量的声明与赋值
- var声明变量
var age;
- 变量的赋值
age = 18;
- 声明变量的同时进行赋值
var age = 18
- 同时声明多个变量
var age, name, sex; age = 10; name = ‘zs’;
- 同时声明多个变量并赋值
var age = 10, name = ‘zs’;
变量的命名规则和规范
- 规则 - 必须遵守的,不遵守会报错
- 由字母、数字、下划线、$符号组成,不能以数字开头
- 不能使用系统关键字(或保留字),例如:for、while——关键字或保留字都有其特定含义,后面会陆续学到。
- 变量区分大小写: 变量age 和 变量Age是两个不同的变量。
- 规范 - 建议遵守的,不遵守不会报错
- 变量名必须有意义——尽量做到“见名知意”,比如:age,price,width,name
- 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:
- userName、userPassword,myName, myFirstName
- 还有一种“大驼峰”命名法:每个单词都首字母大写,比如:
- UserName、UserPassword,MyName, MyFirstName
数据类型
数据类型是用来描述现实世界中不同数据的类别的一种规定。
不同类别的数据,用不同的数据类型来表示。
简单数据类型
number、string、boolean、undefined、null
number(数值)类型
- 数值字面量:数值的固定值的表示法
110 1024 60.5 - 进制
十进制
var num = 9, n2 = 9.9;
进行算数计算时,八进制和十六进制表示的数值最终都将被转换成十进制数值。
十六进制:使用前导字符“0x”
var num = 0xA;
数字序列范围:09以及AF
八进制:使用前导字符“0o”
var num1 = 0o7; // 对应十进制的7,
var num2 = 0o10; // 对应十进制的8
var num3 = 0o22; // 对应十进制的18
数字序列范围:0~7
如果字面值中的数值超出了范围,那么前导“0o”将被忽略,后面的数值将被当作十进制数值解析
- 浮点数
-
浮点数的精度问题
浮点数
var n = 5e-324; // 科学计数法 5乘以10的-324次方
浮点数值的最高精度是 16 位小数(实际最大可精确的值为9007199254740992),但在进行算术计算时其精确度远远不如整数。一般认为,15位精度以内是可靠的。
var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004
console.log(0.07 * 100);
不要直接判断两个浮点数的大小关系 -
数值范围
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity -
数值判断
- NaN:是这3个单词的缩写: Not a Number,表示“不是一个数字”
- NaN 与任何值都不相等,包括他本身
- isNaN(): 是这句话的缩写: is Not a Number,用来判断一个数据“是否不是一个数字”。
- NaN:是这3个单词的缩写: Not a Number,表示“不是一个数字”
string(字符串)类型
字符串是用引号括起来的一段内容
-
字符串字面量
‘程序猿’, ‘程序媛’
在JavaScript中字符串,既可以用单引号又可以用双引号,推荐使用单引号 -
转义符
-
字符串长度
length属性用来获取字符串的长度
var str = ‘程序猿 Hello World’;
console.log(str.length); -
字符串拼接
字符串拼接使用 + 连接
console.log(11 + 11); //数学相加,结果为22
console.log(‘hello’ + ’ world’); //字符串相连,结果为:“hello world”
console.log(‘100’ + ‘100’); //字符串相连:“100100”
console.log(‘11’ + 11); //字符串相连:‘1111’
console.log(‘male:’ + true); //还是字符串相连:'male:true- 两边只要有一个是字符串,那么+就是字符串拼接功能
- 两边如果都是数字,那么就是算术运算的相加功能。
boolean(布尔)类型
- Boolean字面量: true和false,区分大小写
- 计算机内部存储: true为1,false为0
undefined(未定义)类型
- undefined表示一个声明了没有赋值的变量
- undefined类型有且只有一个数据:undefined
null(空)类型
- null类型表示一个变量的值是一个特殊的“空值”(null)
- null类型有且只有一个数据:null
- null值需要明确给以赋值,类似这样: var obj = null; 否则如果没有赋值,就是undefined
复杂数据类型
object(对象)类型就是一种复杂数据类型,表示一个”可以存储若干数据的复合体“,比如:
var obj1 = { name : '张三', age : 18, sex : '男' }
获取变量的类型
typeof关键字可以获取变量的类型
var age = 18;
console.log(typeof age); // 结果为字符串'number'
console.log(typeof true); //结果为字符串'boolean'