您现在的位置是:首页 > 技术教程 正文

JavaScript基础(详细总结)

admin 阅读: 2024-03-29
后台-插件-广告管理-内容页头部广告(手机)

目录

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核心的语法基础
BOMBrowser Object Model 浏览器对象模型,用来操作浏览器上的对象
DOMDocument Object Model 文档对象模型,用来操作网页中的元素(标签)

2、JavaScript基础语法

2.1、HTML引入JS

2.1.1、内部引入

定义script标签,标签体内容就是js代码

  1. <script>
  2. //js代码
  3. script>

2.9.4、绑定一个函数

  1. html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>title>
  6. <script>
  7. function demo(){
  8. alert("点我干嘛?");
  9. }
  10. script>
  11. head>
  12. <body>
  13. <input type="button" value="点我哦" onclick="demo()" />
  14. body>
  15. html>

2.9.5、获取标签中的内容

  1. <script>
  2. function demo(){
  3. //获取p标签
  4. var pid = document.getElementById("pid");
  5. //获取p标签中的内容
  6. // alert(pid.innerHTML);
  7. //修改标签中的内容
  8. pid.innerHTML = "静相思";
  9. /**
  10. * 1、拿到要获取内容的标签
  11. * 2、跟获取的标签,再【获取内容】对象名.innerHTML 【修改内容】对象名.innerHTML = "修改内容"
  12. */
  13. }
  14. script>
  15. head>
  16. <body>
  17. <p id="pid">唐诗三百首p>
  18. <button onclick="demo()">修改内容button>
  19. body>

2.9.6、函数总结 

注意事项

  • 方法定义时,形参的类型不用写,返回值类型可写可不写

  • 如果定义名称相同的方法,会被覆盖,js中没有方法的重载的概念

  • 在JS中,方法的调用只与方法的名称有关,和参数列表无关

  • 在方法声明中有一个隐藏的内置对象(数组),arguments,封装所有的实际参数

  • JS函数中也可以有匿名函数

匿名函数经常会跟事件进行结合着使用 

  1. function(参数列表){
  2. 函数体;
  3. [return 返回值;]
  4. }

2.10、正则表达式

RegExp对象,正则对象,正则表达式的书写规则和Java也一致:

. 当前可以是任意字符
? 表示零次或一次
* 表示零次或多次
+ 表示一次或多次

() 对某个存在的正则进行分组   组的使用  \组号   $组号
{} 当前的规则可以出现的次数  
{2} 正好 2次  {m,} 最少m次  {m,n} 最少m次 最多n
[] 当前位置上可以是中括号中某个字符
  [abc] [^abc] [a-zA-Z][0-9]

\\d 当前位置上可以数字 
\\w 当前位置上可以是字母 数字 下划线
\b 单词边界  hello world
^ 行开始
$ 行结尾

3、JS的常用内置对象

3.1、String对象

3.1.1、创建对象

有三种方式: 单引号('') 、双引号("") 、反引号(``)

  1. <script type="text/javascript">
  2. //双引号字符串
  3. let s1 = "双引号字符串";
  4. //单引号
  5. let s2 = '单引号字符串';
  6. //反引号字符又叫做`字符串模板` ,模板中可以使用${}来进行插值.
  7. let s3 = `反引号字符串`;
  8. let n = 3547;
  9. let s5 =`你的验证码是:${n}`;
  10. console.log(s5);//你的验证码是:3547
  11. script>

3.1.2、常用方法

方法说明
substring() 提取字符串中两个指定的索引号之间的字符,和java一样,包左不包右
toLowerCase()把字符串转换为小写。
toUpperCase()把字符串转换为大写。
replace()替换与正则表达式匹配的子串。
charAt()返回在指定位置的字符。
trim()移除字符串首尾空白
split(delimiter)把字符串分割为子字符串数组;分割为数组
  1. <script>
  2. let a = "我爱这个世界";
  3. document.write(a.substring(2, 6));
  4. document.write("
    "
    )
  5. let b = "abcdefg";
  6. document.write(b.toLocaleUpperCase());//把字符串转换为大写
  7. document.write("
    "
    )
  8. let c="ABCDEFG";
  9. document.write(c.toLocaleLowerCase());//把字符串转换为小写
  10. document.write("
    "
    )
  11. let e="awejjj";
  12. document.write(e.charAt(2));//从0开始 //e
  13. document.write("
    "
    )
  14. let f=" wii i ";
  15. document.write(f.trim());//wii i //只清除两边的空白 单词中间空格不清除
  16. document.write("
    "
    )
  17. let o="d,w,a,d,w";
  18. console.info(o.split(","));
  19. script>

3.2、Array对象

3.2.1、创建数组

let 数组名 = [元素1,元素2,元素3.....];

格式一

  1. <script>
  2. //数组中元素类型是随便写
  3. let arr = [11,22,33,44,"55"];
  4. //长度
  5. // alert(arr.length);
  6. //指定获取数组中的元素
  7. // alert(arr[4]);
  8. //通过脚标修改元素
  9. arr[2] = 99;
  10. arr[3] = "hello";
  11. //遍历一
  12. for(let i = 0; i< arr.length; i++){
  13. document.write(arr[i]);
  14. document.write("
    "
    );
  15. }
  16. //遍历二
  17. for(let a in arr){
  18. document.write(arr[a]+",");
  19. }
  20. script>

格式二

let 数组名 = new Array(元素1,元素2,元素3.....);

  1. <script>
  2. //如果给出多个参数,表示的是数组的元素
  3. let arr = new Array(11,22,"hello",'88',true);
  4. //长度
  5. alert(arr.length);
  6. //获取
  7. alert(arr[2]);
  8. //如果给的参数所number类型,并且只有一个,表示是长度
  9. let arr = new Array(11);
  10. alert(arr.length);
  11. //如果给的参数所number类型,是一个小数,无法表示长度
  12. let arr = new Array(3.14);
  13. alert(arr.length);
  14. //如果给的参数字符中类型,并且是一个,表示元素
  15. let arr = new Array("11");
  16. alert(arr.length);
  17. //遍历
  18. for(let i in arr){
  19. document.write(arr[i]);
  20. }
  21. script>

3.2.2、常用方法

方法说明
concat()连接两个或更多的数组,并返回结果
push()向数组的末尾添加一个或更多元素,并返回新的长度
join(参数)将数组中的元素按照指定的分隔符拼接为字符串
  1. <script type="text/javascript">
  2. // 格式一创建数组
  3. let arr1 = ["张三","李四","王五",true];
  4. // 格式二 创建数组
  5. let arr2 = new Array("古力娜扎","玛尔扎哈",12.3,false);
  6. // arr1 和 arr2 合为一个数组
  7. let newArray = arr1.concat(arr2);
  8. console.log(newArray);
  9. // push: 添加一个新的元素
  10. let len = arr2.push("新元素");
  11. console.log(arr2);
  12. console.log(len);
  13. // join:按照一定的格式拼接字符串
  14. let strArray = arr2.join("=");
  15. console.log(strArray);
  16. script>

3.2.3、数组特点

1、JS中,数组元素的类型可变的。
2、JS中,数组长度可变的。

3.3、Math对象

3.3.1、创建对象

Math对象不用创建,直接使用。 Math.方法名();

方法说明
round(x)把数四舍五入为最接近的整数。
floor(x)向下取整
ceil(x)向上取整
random()随机数,返回 0 ~ 1 之间的随机数。 含0不含1
  1. <script>
  2. let round = Math.round(3.14);
  3. let ceil = Math.ceil(3.14);
  4. let floor = Math.floor(3.14);
  5. let random = Math.random();
  6. // 获取1~100之间的随机整数
  7. let randomNumber = Math.floor((Math.random() * 100)) + 1;
  8. script>
属性说明
PI圆周率

3.4、Date对象

3.4.1、创建对象

var date = new Date();

3.4.2、常用方法

方法说明
toLocaleString()返回当前date对象对应的时间本地字符串格式
getTime()         获取毫秒值。返回当前如期对象描述的时间到1970年1月1日零点的毫秒值差
getFullYear()获取年
getMonth()获取月
getHours()获取时
getMinutes()获取分         
getDate()获取日
getSeconds()获取秒
  1. <script>
  2. var d = new Date();
  3. console.info(d);//Fri Jul 02 2021 17:23:09 GMT+0800 (中国标准时间)
  4. console.info(d.toLocaleString()); //2021/7/2 下午5:23:19
  5. console.info(d.toLocaleDateString());//2021/7/2
  6. console.info(d.toLocaleTimeString());//下午5:23:19
  7. console.info('获取年:'+d.getFullYear());//获取年
  8. console.info('获取月:'+d.getMonth());//获取月
  9. console.info('获取日:'+d.getDate());//获取日
  10. console.info('获取小时:'+d.getHours());//获取小时
  11. console.info('获取分:'+d.getMinutes());//获取分
  12. console.info('获取秒:'+d.getSeconds());//获取秒
  13. console.info('获取毫秒:'+d.getTime());获取毫秒
  14. script>

3.5、全局函数

3.5.1、什么是全局函数

全局函数不需要对象就可以直接调用: 方法名();

3.5.2、常用全局函数

方法说明
parseInt()将字符串解析成一个整数。
parseFloat()将字符串解析成一个浮点数。
isNaN()判断是否是一个NaN类型的数据
  1. <script>
  2. console.log(parseInt("123.456"));//123
  3. console.log(parseInt("12abc3.456"));//12
  4. console.log(parseFloat("123.456"));//123.456
  5. console.log(parseFloat("123.45abc6"));//123.45
  6. console.log(parseInt("abc123"));//NaN : not a number 不是一个数字
  7. console.log(isNaN("abc123"));//true
  8. script>

如果要判断是否是一个NaN类型的数据,使用isNaN()

3.5.3、字符编码

方法说明
encodeURI()把字符串编码为 URI
decodeURI()解码某个编码的 URI
  1. <script>
  2. let name = "明下午两点偷袭珍珠";
  3. let encodeName = encodeURI(name);//编码
  4. //%E6%98%8E%E4%B8%8B%E5%8D%88%E4%B8%A4%E7%82%B9%E5%81%B7%E8%A2%AD% E7%8F%8D%E7%8F%A0
  5. console.log(encodeName);
  6. // 对数据进行解码
  7. let resultStr = decodeURI(encodeName);//解码
  8. console.log(resultStr);
  9. script>

3.5.4、普通字符串解析js代码

方法说明
eval()接受一个js字符串,校验字符串中的内容是不是js代码(脚本),如果是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

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索