JavaScript超全的知识点总结【二】

简介: JavaScript超全的知识点总结【二】

嵌入方式

  • 内嵌式

理论上js可以写在任何第一个地方 但是一般写在head标签里或者 body下

1. <script type="application/javascript">
2. alert("内嵌式");
3. </script>
4. <script>alert("内嵌式");</script>
  • 外链式

新建一个文件类型为.js的文件,然后在该文件中写js语句,通过script标签对引入到html页面中。

<script src="js文件路径地址">这里不能写js语句</script>
  • 行内式

直接书写在标签身上,是一个简写的事件,所以又称之为事件属性

1. onclick单击事件
2. <input type="button" value="coleak" onclick="alert('xss');">
3. <button onclick="alert('xss');">coleak</button>

函数进阶

  • 匿名函数(没有名字的函数称为匿名函数)

每3000毫秒打印一个123

1. <script type="text/javascript">
2. setInterval(function(){console.log(123);},3000)
3. </script>

  • 自执行函数 (创建函数并且自动执行)
1. <script type="text/javascript">
2. (function(arg){console.log(arg);})(1);
3. </script>

字典

  • 输出字典元素
1. <script type="text/javascript">
2. var dict = {'k1':"coleak",'k2':'moon','age':18};
3. for(var item in dict)
4. {
5. console.log(dict[item]);
6. }
7. </script>
  • 删除元素
1. <script type="text/javascript">
2. var dict = {'k1':"coleak",'k2':'moon','age':18};
3. for(var item in dict)
4. {
5. console.log(dict[item]);
6. }
7. delete dict['age']
8. delete dict.k1;
9. for(var item in dict)
10. {
11. console.log(dict[item]);
12. }
13. </script>

面向对象

JavaScript是一种基于原型的语言,它没类的声明语句,比如C+ +或Java中用的。这有时会对习惯使用有类申明语句语言的程序员产生困扰。相反,JavaScript可用方法作类。定义一个类跟定义一个函数一样简单。

  • 方法一
1. <script type="text/javascript">
2. function Person(my_name) {
3. //构造函数里面的方法和属性
4. this._name = my_name;
5. this.getName = function ()
6.     {
7. console.log(this._name);
8.      };
9. this.setName = function (Setname) 
10.      {
11. this._name = Setname;
12.      };
13.  }
14. 
15. var p = new Person("张三");
16.  p.getName();
17.  p.setName("李四");
18.  p.getName();
19. </script>
  • 方法二
1. <script type="text/javascript">
2. class Person {
3. constructor(name) 
4.      {
5. this._name = name;
6.      }
7. getName() 
8.      {
9. console.log(this._name);
10.      }
11. setName(name)
12.      {
13. this._name = name
14.     }
15. }
16. let p = new Preson('张三')
17.  p.getName();  // 张三
18.  p.setName('李四');
19.  p.getName();  // 李四
20. </script>

三目运算符

表达式1?表达式2:表达式3

当我的表达式1成立时  执行表达式2  否则执行表达式3

1. <script type="text/javascript">
2. var max = 2>1?'>':'<';
3. alert(max);
4. </script>

转义

escape()函数

定义和用法

escape() 函数可对字符串进行编码,该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

encodeURI()函数

encodeURI() 函数可把字符串作为 URI 进行编码

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#

encodeURIComponent() 函数

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。 其中encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号

总结

escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

  • 案例
1. <script type="text/javascript">
2. document.write(escape("http://test.cn/index.html") + "<br />")
3. document.write(escape("?!=()#%&"))
4. </script>

unescape还原

http%3A//test.cn/index.html

%3F%21%3D%28%29%23%25%26

1. document.write(encodeURI("my test.php?name=ståle&car=saab") + "<br />")
2. document.write(encodeURI("?!=()#%&"))

decodeURI还原

my%20test.php?name=st%C3%A5le&car=saab

?!=()#%25&

url编码

1. <script type="text/javascript">
2. document.write(encodeURIComponent("http://test.cn/index.html") + "<br />")
3. document.write(encodeURIComponent("?!=()#%&"))
4. </script>

codeURIComponent还原

http%3A%2F%2Ftest.cn%2Findex.html

%3F!%3D()%23%25%26

其他

console.log 终端输出

alert 弹出框

confirm 确认框 标题 true false

url和刷新

location.href  获取url

location.href ='url' 重定向

location.reload() 重新加载

定时器

setInterval()

clearInterval()

1. <script>
2. 
3. var str="Hello world!";
4. document.write(str.substring(3)+"<br>");
5. document.write(str.substring(3,7));
6. 
7. </script>

lo world!(3~length-1,即为后文全输出)

lo w(3~6)

charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1

onblur 当用户离开input输入框时执行一段Javascript代码

综合案例

  • 走马灯
1. <!DOCTYPE html>
2. <html>
3.  <head>
4.    <meta charset="UTF-8">
5.    <title></title>
6.  </head>
7.  <body>
8.    <div id="c1">
9.      coleak的走马灯测试内容
10.     </div>
11.     <script>
12.       function p()
13.       {
14.         var tag =document.getElementById('c1');
15.         var t = tag.innerText;
16.         var l = t.charAt(0);
17.         var s = t.substring(1,t.length);
18.         tag.innerText = s+l;
19.       }
20.       setInterval('p()',350);
21.     </script>
22.   </body>
23. </html>
  • 搜索框
1. <!DOCTYPE html>
2. <html>
3.  <head>
4.    <meta charset="UTF-8">
5.    <title></title>
6.  </head>
7.  <body>
8.    <form method="get" action="">
9.      <input  id='c1' type="text" value="请输入关键字搜索" onfocus="f1();" onblur="f2();" />
10.       <input type="submit" value="搜索" />
11.     </form>
12.     <script>
13.       function f1(){
14.         var tag = document.getElementById('c1');
15.         var c = tag.value
16.         if(c =='请输入关键字搜索'){
17.           tag.value='';
18.         }
19.       }
20.       function f2(){
21.         var tag = document.getElementById('c1');
22.         var c = tag.value;
23.         if(c.length==0){
24.           tag.value='请输入关键字搜索';
25.         }
26.       }
27.     </script>
28.   </body>
29. </html>
目录
相关文章
|
3月前
|
JavaScript 前端开发 CDN
总结 vue3 的一些知识点:Vue.js 安装
总结 vue3 的一些知识点:Vue.js 安装
|
3月前
|
XML JSON 前端开发
|
3月前
|
JavaScript
总结 vue3 的一些知识点:​Vue.js 条件语句​
总结 vue3 的一些知识点:​Vue.js 条件语句​
|
7天前
|
JavaScript 前端开发
JavaScript 知识点总结
JavaScript 知识点总结JavaScript 是一种广泛应用于前端开发的编程语言。本文将总结一些常见的 JavaScript 知识点,帮助你更好地理解和应用这门语言。 一、基本语法和数据类型 变量声明:使用 var、let 或 const 声明变量。var 声明的变量具有函数作用域,而 let 和 const 声明的变量具有块级作用域。 var x = 10; let y = 20; const z = 30; 数据类型:JavaScript 中有以下几种基本数据类型:String(字符串)、Number(数字)、Boolean(布尔值)、Undefined(未定义)、Null(空值
17 3
|
3月前
|
JavaScript 前端开发 Java
前端知识点03(JS)
前端知识点概览:了解JS中的this指向,包括全局、函数、new、apply/call/bind及箭头函数的规则。理解script的async和defer属性对脚本加载和执行的影响。探讨setTimeout和setInterval的用法及其在性能上的考量。ES6与ES5的区别在于新语法特性,如let/const、箭头函数、模板字符串、模块化、类和继承等。此外,ES6还引入了Symbol、解构赋值、默认参数、Map/Set和Generator等功能。别忘了点赞和支持作者哦!
36 1
|
3月前
|
存储 缓存 前端开发
< 今日份知识点:Javascript本地存储的方式有哪些?区别及应用场景? >
在前端开发中,偶尔需要存储一些如: 用户信息、登录状态、历史记录等常量数据。用于后续二次调用,并且避免刷新后丢失。这时,就需要用到本地存储了。 在`JavaScript` 中,提供了四种可用的本地存储方式: **`cookie`** ,**`sessionStorage`**, **`localStorage`**, **`indexedDB`** ( 已废除的 `WebSQL` )。四种方式各有千秋,接下来,就由小温带各位卷王了解一下,`Javascript` 中的本地存储吧
< 今日份知识点:Javascript本地存储的方式有哪些?区别及应用场景? >
|
9月前
|
JavaScript 前端开发 数据库
前端常见知识点汇总(ES6,Vue,axios,Node.js,npm,webpack)-3
前端常见知识点汇总(ES6,Vue,axios,Node.js,npm,webpack)
79 0
|
3月前
|
JavaScript 前端开发 Java
[javascript]知识点
如果文中阐述不全或不对的,多多交流。
156 0
[javascript]知识点
|
3月前
|
JavaScript 前端开发
javascript知识点
javascript知识点
|
3月前
|
JavaScript
总结vue3 的一些知识点:Vue.js 安装(下)
选取 Runoob,输出效果如下所示: