1. Js是什么?
JavaScript(简称JS)是一种运行在客户端的脚本语言,JavaScript的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
1.1 Js和Html CSS 的区别
HTML - 提供网页的结构,提供网页中的内容
CSS - 用来美化网页
JavaScript - 可以用来控制网页内容,给网页增加动态的效果
1.2 Js的组成
1)ECMAScript - JavaScript的核心
ECMA欧洲计算机制造联合会。JavaScript的核心,描述了语言的基本语法和数据类型,ECMAScript是一套标准,定义了一种语言的标准与具体实现无关。
2)BOM - 浏览器对象模型
一套操作浏览器功能的API。通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取分辨率等。Borswer object model
3)DOM - 文档对象模型
一套操作页面元素的API。DOM可以把HTML看做是文档树,通过DOM提供的API可以对树上的节点进行操作。Document object model
1.3 Js代码写法
1.在html的文件中,script的标签中写js代码
2.js代码可以在html的标签中写
3.在js文件中可以写js代码,但是需要在html页面中引入script的标签中的src="js的路径"
4.还可以在控制台直接书写js代码
2. Jscript 变量
(1)、变量引入
什么是变量
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
为什么要使用变量
使用变量可以方便的获取或者修改内存中的数据
(2)、变量声明和初始化
var声明变量
var age;
变量的赋值
var age;
age = 18;
同时声明多个变量
var age, name, sex;
age = 10;
name = 'zs';
3. Jscript 数据类型
3.1 基本数据类型
Number、String、Boolean、Undefined、Null
3.1.1 Number类型
数值字面量:数值的固定值的表示法,例如110,1024,60.5
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
数值判断
NaN:not a number (可以通过Number()方法判断)
NaN与任何值都不相等,包括他本身
isNaN(): is not a number (如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false)
3.1.2 String类型
字符串长度
length属性用来获取字符串的长度
字符串拼接
字符串拼接使用 + 连接
console.log(11 + 11);
console.log('hello' + ' world');
3.1.3 Boolean类型
Boolean字面量: true和false,区分大小写
计算机内部存储:true为1,false为0
3.1.4 Undefined和Null
undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
null表示一个空,变量的值如果想为null,必须手动设置
var s = null;
3.2 复杂数据类型
Object
3.3 数据类型转换
获取变量的类型
typeof关键字
console.log(typeof age); // 'number'
toString()
转换成字符串类型
console.log(num.toString());
String()
String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:undefined和null
拼接字符串方式
num + "",当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串
转换成数值类型
Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
Number()转化规则
a. 如果字符串中只包含数字时,将其转换为十进制数值,忽略前导0
b. 如果字符串中包含有效浮点格式,如“1.1”,将其转换为对应的浮点数字,忽略前导0
c. 如果字符串中包含有效的十六进制格式,如“0xf”,将其转换为相同大小的十进制数值
d. 如果字符串为空,或者是空内容,将其转换为0
e. 如果字符串中包含除上述格式之外的字符,则将其转换为NaN
parseInt()
// 返回12,如果第一个字符是数字会解析知道遇到第一个小数点结束
var num1 = parseInt("12.3abc");
// 返回NaN,如果第一个字符不是数字或者符号就返回NaN
var num2 = parseInt("abc123");
parseFloat()
parseFloat()把字符串转换成浮点数,parseFloat()和parseInt非常相似,不同之处在与
parseFloat会解析第一个. 遇到第二个.或者非数字结束
如果解析的内容里只有整数,解析成整数
转换成布尔类型
Boolean()
0 ' ' null undefined NaN会转换成false,其它都会转换成true
4. Jscript 运算
4.1 算数运算符
+ - * / %
4.2 一元运算符
一元运算符:只有一个操作数的运算符
5 + 6 两个操作数的运算符是二元运算符
++ 自身加1,-- 自身减1
4.3 逻辑运算符
&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
! 非 取反
4.4 关系运算符
< > >= <= == != === !==
==与===的区别:==只进行值得比较,===类型和值同时相等,则相等
var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,类型不相等
var result = 55 === 55; // true
4.5 赋值运算符
= += -= *= /= %=
um += 5; //相当于 num = num + 5;
4.6 运算符的优先级
括号>点运算符>一元运算符> 算数运算符 >关系运算符>相等运算符>逻辑运算符 >赋值运算符
5. 流程控制
5.1 分支结构
1. if 语句
2. 三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
3. switch语句
switch (expression) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
}
5.2 循环结构
1. while 语句
// 当循环条件为true时,执行循环体,
// 当循环条件为false时,结束循环。
while (循环条件) {
//循环体
}
2. do while 语句
do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。
3. for 语句
for循环语法:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}
4. continue 和 break
break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
6. 调试
1.alert() 警告框
2.console.log()控制台打印
// 警告框,比如弹框提醒你 密码不对
alert("警告框");
// 确认框 , 比如 是否要退出登录
// 是 就是true 否 就是false
var flag = confirm("确定退出登录吗?");
console.log(flag);
// 对话框,接收用户输入,返回输入的数据
var value = prompt("请输入 泽哥真帅");
// console.log(value);
while(value != "泽哥真帅"){
value = prompt("请输入 泽哥真帅");
}
alert("我也这么认为")