目录
1、JavaScript简介
1.2、JavaScript的发展史
1.3、JavaScript的功能
1.4、JavaScript的特点
1.5、JavaScript组成
2、JavaScript基础语法
2.1、HTML引入JS
2.1.1、内部引入
2.1.2、外部引入
2.2、JS输出数据的三种方式
2.2.1、浏览器弹窗
2.2.2、输出HTML页面
2.2.3、输出浏览器控制台
2.3、JS注释
2.3.1、单行注释
2.3.2、多行注释
2.4、JS变量声明
2.4.1、定义变量
2.4.2、定义常量
2.5、JS的数据类型
2.5.1、类型判断 typeof变量
2.6、JS的运算符
2.6.1、算数运算符
2.6.2、比较运算符
2.6.3、三目(元)运算符
2.7、JS流程控制语句
2.7.1、if结构
2.7.2、switch语句
2.8、循环结构
2.8.1、for循环
2.8.2、while循环
2.8.3、do…while循环
2.9、JS函数
2.9.1、函数的第一种定义方式
2.9.2、函数的第二种定义方式
2.9.3、函数的第三种定义方式
2.9.4、绑定一个函数
2.9.5、获取标签中的内容
2.9.6、函数总结
2.10、正则表达式
3、JS的常用内置对象
3.1、String对象
3.1.1、创建对象
3.1.2、常用方法
3.2、Array对象
3.2.1、创建数组
3.2.2、常用方法
3.2.3、数组特点
3.3、Math对象
3.3.1、创建对象
3.4、Date对象
3.4.1、创建对象
3.4.2、常用方法
3.5、全局函数
3.5.1、什么是全局函数
3.5.2、常用全局函数
3.5.3、字符编码
3.5.4、普通字符串解析js代码
3.5.5、URL和URI
1、JavaScript简介
一门客户端脚本语言,运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎,不需要编译,直接就可以被浏览器解析执行了。
1.2、JavaScript的发展史
起源问题:上世纪末1995年时,Netscape(网景)公司推出Navigator浏览器。发布后用的人不多,这咋整啊?这家公司就想了一个好方案,不仅在浏览器实现静态HTML,还想要有动态效果,比如:在前端处理表单验证。
发明诞生:有目标就去做,网景公司大牛多,Brendan Eich(布兰登·艾奇)据说就用了10天就把JavaScript搞了出来,刚出来时叫LiveScript,为了蹭蹭当红明星Java热度,就改成JavaScript了(瞬间就火了),事实上他们两没啥关系。
竞争对手:看到网景公司有了js,微软感觉不行啊,我的IE要被干掉啊,同时也感到js的前途无量,于是参考JavaScript弄了个名为JScript浏览器脚本语言。
标准制定: Netscape和微软竞争出现的js导致版本的不一致,随着业界的担心,JavaScript的标准化被提上议事日程。ECMA(欧洲计算机制造商协会)组织就去干这事,最后在1997年弄出了ECMAScript作为标准。这里ECMAscript和JavaScript可以看做表达的同一个东西。
1.3、JavaScript的功能
可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。
1.4、JavaScript的特点
1、js源码不需要编译,浏览器可以直接解释运行。
2、js是弱类型语言,js变量声明不需要指明类型。
1.5、JavaScript组成
组成部分 | 作用 |
---|---|
ECMA Script | 构成了JS核心的语法基础 |
BOM | Browser Object Model 浏览器对象模型,用来操作浏览器上的对象 |
DOM | Document Object Model 文档对象模型,用来操作网页中的元素(标签) |
2、JavaScript基础语法
2.1、HTML引入JS
2.1.1、内部引入
定义script标签,标签体内容就是js代码
//js代码
标签可以写在任意位置,推荐写在的尾部。浏览器在执行时,是从下往下依次执行!
2.1.2、外部引入
1、script标签不能自闭合。
2、如果script标签使用src属性,那么浏览器将不会解析此标签体的js代码。
2.2、JS输出数据的三种方式
2.2.1、浏览器弹窗
alert('浏览器弹框输出字符');
2.2.2、输出HTML页面
document.write('输出html内容到页面');
2.2.3、输出浏览器控制台
console.log('输出到浏览器控制台');
2.3、JS注释
2.3.1、单行注释
//注释内容
2.3.2、多行注释
/*注释内容*/
2.4、JS变量声明
java是强类型语言,注重变量的定义,所以在定义变量时都需要指定数据类型。
js是弱类型语言,不注重变量的定义,所以在定义变量时不需要指定数据类型。
2.4.1、定义变量
//局部变量 用let定义let 变量名 = 值;//全局变量 用var定义var 变量名 = 值;
2.4.2、定义常量
//常量定义 constconst 常量名 = 值;
//整数类型var a=3;// Boolean类型var b=true;// 定义小数类型小数和整数类型统称为number类型var score=2.333;// 定义常量类型常量类型一旦被定义就不能被改变const PI=3.1415926//boolean类型 var f=true;var m;console.log(m);// undefined;表示变量未被定义// 字符串类型 stringvar o="dd";
注意事项:
1、ECMAScript6之前定义变量使用var
但是会有很多坑,所以ECMAScript6之后开始推出let
声明变量,const
声明常量。
2、在js中,末赋值的变量,也是可以使用的,但是这个值是undefined
,末定义的变量。
2.5、JS的数据类型
属性 | 描述 |
---|---|
number | 数字类型,不区分小数整数 |
string | 字符串类型,不区分单双串 |
boolean | 布尔类型,true/false |
object | 对象(function null) |
undefined | 未定义 |
2.5.1、类型判断 typeof变量
// 使用let关键字 定义字符串let str1 = "你好JS!";let str2 ='a';console.log(typeof str1);console.log(typeof str2);// 定义整数let num1 = 1314;let num2 = 13.14;//四舍五入,保留2位console.log(typeof num1);console.log(typeof num2);// 定义boolean类型let flag = true;console.log(typeof flag);// 末定义类型let a;console.log(typeof a); // 引用数据类型let obj = new Object();console.log(typeof obj);
2.6、JS的运算符
运算符 | 说明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
算数运算符 | + 、 - 、* 、 / 、% 、 ++ 、 -- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
赋值运算符 | = 、+= 、-= 、 *= 、 /= 、 %= | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
比较运算符 | > 、 >= 、 < 、 <= 、 == 、 ===(全等于,仅js) 、 != | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
逻辑运算符 | && 、 || 、 ! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
三元运算符 | 关系表达式 ” />2.6.1、算数运算符 在js中数值可与字符串进行数学运算,底层实现隐式转换。
注意:字符串类型与数字类型的运算中,只有相加会进行字符串拼接,而减、乘、除运算中,字符串中的数值可与字符串进行数学运算。 2.6.2、比较运算符==、===(全等于)之间的区别?
2.6.3、三目(元)运算符
2.7、JS流程控制语句2.7.1、if结构
JS的条件语句和Java语法基本一样,但是对数据类型的真假判断有些区别。 JS中对各种数据类型作为布尔值有以下特点:
无意义的数据都为false 反之都为true。
2.7.2、switch语句
2.8、循环结构2.8.1、for循环普通for循环
增强for循环
索引for循环
代码演示
forof 与 forin之间的区别
2.8.2、while循环for一般用在某一个范围中循环 for中的 var i = 1;这个只能在for循环中使用
2.8.3、do…while循环do…while循环就不再单独演示,跟java中的do…while循环用法是一致的!
总结
2.9、JS函数js函数是执行特定功能的代码块,也可以称为js方法。与java中的方法的功能是一样的。
2.9.1、函数的第一种定义方式
2.9.2、函数的第二种定义方式
2.9.3、函数的第三种定义方式
2.9.4、绑定一个函数
2.9.5、获取标签中的内容
2.9.6、函数总结注意事项
匿名函数经常会跟事件进行结合着使用
2.10、正则表达式
3、JS的常用内置对象3.1、String对象3.1.1、创建对象有三种方式: 单引号(”) 、双引号(“”) 、反引号(“)
3.1.2、常用方法
3.2、Array对象3.2.1、创建数组let 数组名 = [元素1,元素2,元素3…..]; 格式一
格式二 let 数组名 = new Array(元素1,元素2,元素3…..);
3.2.2、常用方法
3.2.3、数组特点
3.3、Math对象3.3.1、创建对象Math对象不用创建,直接使用。 Math.方法名();
3.4、Date对象3.4.1、创建对象var date = new Date(); 3.4.2、常用方法
3.5、全局函数3.5.1、什么是全局函数全局函数不需要对象就可以直接调用: 方法名(); 3.5.2、常用全局函数
如果要判断是否是一个NaN类型的数据,使用isNaN() 3.5.3、字符编码
3.5.4、普通字符串解析js代码
3.5.5、URL和URI如下面网址: https://www.baidu.com/a/fdks/kdjs http:// 网络传输协议 www 万维网 .baidu.com 域名 /a/fdks/kdjs 资源路径(资源:一个文件,一个程序,图片,视频,,,) URL: 统一资源定位符 百度一下,你就知道 URI:统一资源标识符 /a/fdks/kdjs |