前言 闲来无事,简单总结学习中遇到的与js相关的知识,因为暂时用的不多,记的比较随意
 
js基础 引用方法 
标签引用1 2 3 <script>     alert("Hello,World!" ); </script> 
 
文件引用1 <script defer="defer"  src="https://www.yuketang.cn/static/lesson/html/sentry.js" ></script> 
 
 
常用的js宿主对象 JavaScript 的宿主对象是指在 JavaScript 运行环境中提供的对象,这些对象通常不是由 JavaScript 语言本身定义的,而是由宿主环境(如浏览器、Node.js等)提供的。宿主对象提供了与外部环境的交互能力,例如访问文档、控制网络请求等。
浏览器对象 window对象 1 2 3 4 5 6 7 8 9 10 11 window .close()window .open('链接地址' )以下可以不带 window  前缀 window .alert("sometext" )window .confirm("sometext" )window .prompt("sometext" ,"defaultText" );window .setTimeout(function , milliseconds ) ;window .setInterval(function , milliseconds ) ;
 
Navigator对象 1 var  ua = navigator.userAgent;
 
Location对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 location属性 {   "href" : "http://127.0.0.1:5500/jstext.html?1=1" ,   "origin" : "http://127.0.0.1:5500" ,   "protocol" : "http:" ,   "host" : "127.0.0.1:5500" ,   "hostname" : "127.0.0.1" ,   "port" : "5500" ,   "pathname" : "/jstext.html" ,   "search" : "?1=1" , } 方法 location.assign("https://www.baidu.com" ); location.reload(true ); location.replace("https://www.baidu.com" ); 
 
History对象 1 2 history.back(); history.forward(); 
 
consolo对象 1 2 3 4 5 6 <script>     console .log("输出一条日志" );     console .info("输出一条信息" );     console .warn("输出一条警告" );     console .error("输出一条错误" ); </script> 
 
Document对象 
查找元素节点1 2 3 4 5 6 7 8 <button id="btn" >我是按钮</button> document .getElementById("btn" );        <button  class ="btn"  href ="" > 我是按钮</button > document .getElementsByTagName("button" );document .getElementsByClassName("btn" );	document .querySelector(".btn" )	document .querySelectorAll(CSS选择器)	
 
查看改变元素1 2 3 4 5 6 7 8 var  all_radio = document .getElementById("door_form" ).elements;if (all_radio[i].checked) btn.innerText = "我是JavaScript的按钮" ; box.innerHTML = "<h1>我是Box中的大标题</h1>" ; a.href="https://www.baidu.com" ; a.setAttribute("href" , "https://www.baidu.com" ); box.style.background = "green" ; 
 
节点操作1 2 3 4 5 6 7 8 1、创建元素节点:document.createElement(tagName) 2、创建文本节点:document.createTextNode="str" 3、追加子节点:parent.appendChild(ele) 4、追加子节点:parent.insertBefore(a,b) 5、删除子节点:parent.removeChild(ele) 6、删除自身节点:ele.remove( ) 7、替换节点:parent.replaceChild(a,b) 8、复制节点:ele.cloneNode("true|false") 
 
原生对象 avaScript 的原生对象是 JavaScript 语言本身定义的对象,它们提供了基本的功能和数据结构。原生对象不依赖于宿主环境(如浏览器或 Node.js),可以在任何 JavaScript 环境中使用 
 
事件 在 JavaScript 中,事件是用户与网页交互时触发的动作
鼠标事件 1 2 3 4 5 6 7 8 9 10 11 12 var  textInput = document .getElementById("text" );         textInput.onfocus = function  ( )  {         this .style.background = "red" ;… function  onblur ( )此外还有 onclick 	当单击鼠标时运行脚本。ondblclick 	当双击鼠标时运行脚本。onscroll 	当滚动元素的滚动条时运行脚本。
 
键盘事件 1 2 3 4 5 6 7 8 9 10 11 12 onkeydown	当按下按键时运行脚本。 onkeyup	当松开按键时运行脚本。 onkeypress	当按下并松开按键时运行脚本 键盘属性 ctrlKey	返回当事件被触发时,“CTRL” 键是否被按下。 确定单击鼠标按钮时是否按下了 "CTRL" 键: if (event.ctrlKey) {   alert("The CTRL key was pressed!"); } else {   alert("The CTRL key was NOT pressed!"); } 
 
事件绑定 使用 addEventListener()  方法来绑定事件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20   var  form = document .getElementById('mkdir' ); form.addEventListener('submit' , function (e )  {   e.preventDefault();    var  formData = new  FormData(form);    var  xhr = new  XMLHttpRequest();   xhr.open('POST' , 'mkdir.php' );    xhr.send(formData);    xhr.onreadystatechange = function ( )  {     if  (xhr.readyState === XMLHttpRequest.DONE) {        if  (xhr.status === 200 ) {          alert('创建成功' , 'info' );        } else  {          alert(json['error' ], 'danger' );       }     }   }; }); 
 
与后端交互 ajax AJAX 的核心是 XMLHttpRequest  对象。 所有现代浏览器都支持 XMLHttpRequest 对象。 XMLHttpRequest 对象用于幕后同服务器交换数据,这意味着可以更新网页的部分,而不需要重新加载整个页面。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var  ajax = new  XMLHttpRequest();ajax.open("get" , "users.json" ); ajax.open("GET" ,"/try/ajax/demo_get.php?t="  + Math .random(),true ); ajax.open("POST" ,"/try/ajax/demo_post2.php" ,true ); ajax.setRequestHeader("Content-type" ,"application/x-www-form-urlencoded" ); ajax.send("fname=Henry&lname=Ford" ); ajax.send(); ajax.onreadystatechange = function  ( )  {     if  (ajax.readyState == 4  && ajax.status == 200 ) {             console .log(ajax.responseText);     } }; 
 
fetch 1 2 3 4 5 6 7 8 9 sn (e, t )  {        e && t && fetch("/check.php" , {             method : "POST" ,             headers : {                 "Content-type" : "application/x-www-form-urlencoded; charset=UTF-8"              },             body : "score="  + parseInt (e).toString() + "&checkCode="  + md5(parseInt (e).toString() + t) + "&tm="  + (+new  Date ).toString().substring(0 , 10 )         }).then(e  =>  e.text()).then(e  =>  alert(e))     } 
 
async/await async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。
await 也是一个修饰符,只能放在async定义的函数内。可以理解为等待。 await 修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行; 如果不是Promise对象:把这个非promise的东西当做await表达式的结果
RxJS (Javascript 的响应式扩展) 1 2 3 4 o.http.post("/api/logout" , null ).subscribe((function  ( )  {                                o.token = null , o.router.navigate(["/login" ]).then((function  ( )  {                                    n && o.messageService.success("退出登录" )                                })) 
 
JQuery框架 jQuery 库可以通过一行简单的标记被添加到网页中<script language="javascript" type="text/javascript" src="https://www.leavesongs.com/content/templates/K-BLUE1.2/js/jquery-1.8.3.min.js"></script> jQuery 入口函数:
1 2 3 4 5 6 7 $(document ).ready(function ( ) {      }); 或者 $(function ( ) {      }); 
 
基础语法: $(selector).action()
jQuery 选择器 元素选择器 $("p:first") #id 选择器 $("#test") .class 选择器 $(".test") 属性选择器$("[name='user']") 
jQuery AJAX 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 function  deletefile ( )  {    var  filename = $(this ).parent().attr("filename" );     var  data = {         "filename" : filename     };     $.ajax({         url : 'delete.php' ,         type : 'POST' ,         data : data,         dataType : 'json' ,          contentType : "application/json;charset=UTF-8" ,          success : function  (json )  {             if  (json['success' ]) {                 toast('删除成功' , 'info' );             } else  {                 toast(json['error' ], 'danger' );             }             setTimeout (function  ( )  {location.reload();}, 1000 );         }     }); } $(document ).ready(function  ( )  {     $(".delete" ).click(deletefile);     $('.fileLabe2' ).click(function ( )  {         var  f = $(".fileLabe2" ).attr("f" );         var  parts = f.split('/' );         var  parentPath='/' ;         if  (parts.length>3 ) var  parentPath = parts.slice(0 , -2 ).join('/' );          var  form = $('<form method="POST"></form>' );         form.attr('action' , 'index.php' );         var  input = $('<input type="hidden" name="f" value="'  + parentPath + '"></input>' )         $(document .body).append(form);         $(form).append(input);         form.submit();         form.remove();     }); })