飞道的博客

Javascript 常用语法 Web前端基础

261人阅读  评论(0)

Javascript 和 HTML、CSS一样,是Web前端开发所必须的三个模块。另外,JavaScript也是Vue、Ext、jQuery等框架的基础语言,所以JavaScript的学习是至关重要的。其实,学了C++语言,学了Java,感觉JavaScript的基础语法整理上比较类似于Java,所以那些输入输出选择循环语句的基础语法,就不记下来了,毕竟代码天天在写,也不会忘。

我跟之前总结HTML、CSS一样,同样是站在本科应用层的角度,重点是比较常用的语法搭配,其次是那些有花里胡哨的功能语法,省略那些可以被新功能所替代的旧方法。

HTML部分:点击这里

CSS部分:点击这里


本文目录:

目录

第一部分:最常用的语法

常用调试方法常用获取HTML组件的八种方法数据类型按钮方法绑定数组/循环数组的常用方法字符串常用方法配合HTML组件

第二部分:其他小功能

定时执行函数 动态更新时间组件正则表达式输入栏提示文本异常处理滚动标题JSON模拟Java类使用JS添加HTML组件表格数据添加


第一部分:最常用的语法

常用调试方法


  
  1. alert( 'hello zwz'); //弹框
  2. console.log( 'hello zwz!'); //调试窗口
  3. document.getElementById( 'c').innerHTML = 'hello zwz'; //覆盖输出到HTML元素
  4. //不覆盖可以把= 改成 += 即可

常用获取HTML组件的八种方法


  
  1. <input id= "did" class= "dclass" name= 'dname' value= "aaa"/>
  2. //以上为HTML
  3. var did = document.getElementById( 'did'); //根据ID查找 唯一
  4. var dclass = document.getElementsByClassName( 'dclass')[ 0]; //根据class查找 不唯一
  5. var ddiv = document.getElementsByTagName( 'input')[ 0]; //根据标签名查找 不唯一
  6. var dclass2 = document.getElementsByName( 'dname')[ 0]; //根据name查找 不唯一
  7. var b = document.querySelector( '#did').value; //id
  8. var c = document.querySelector( '.dclass').value; //class
  9. var d = document.querySelector( 'input').value; // 标签
  10. var e = document.querySelectorAll( 'input')[ 0].value; //所有的标签集合

数据类型

JavaScript是一种弱类型的语言,在C++中,一个int类型的变量,用%f格式输出,就会出错,反之亦然;这是因为整数和浮点数之间有一条不可逾越的鸿沟(个人理解)。在JavaScript中就不一样了,var就是一个百搭类型,那些整数、浮点数、字符串,甚至对象、数组,通通可以定义。当然可以使用typeof函数来获取当前的数据类型,就像这样:


  
  1. var a = 1;
  2. var b = 3.14; // num.toFixed(4);保留四位
  3. var c = 'hello zwz!';
  4. var d = [ 'zwz01', 'zwz02', 'zwz03'];
  5. var e = {
  6. 'name': 'zwz',
  7. 'age': 18
  8. };
  9. var leixing = typeof(a);
  10. var num = parseFloat(string); //String转Num

如果只是var一个变量没有初始化,类型就是undefined;如果为空,就是Null;如果数字计算结果不为数字,那么就是NaN

按钮方法绑定


  
  1. <input type="button" value="按钮" οnclick="run()"/>
  2. function run(){
  3. //运行的代码
  4. }

数组/循环


  
  1. //一维数组
  2. var arr = [ 'a1', 'a2', 'a3', 'a4', 'a5', 'a6'];
  3. //二维数组
  4. var arr = [
  5. [ 'zwz01', 'zwz02', 'zwz03'],
  6. [ 'zwz11', 'zwz12']
  7. ];
  8. alert(arr[ 0][ 1]); //调用
  9. //for-in循环
  10. var a = [ 3, 4, 5, 6, 7];
  11. for( var i in a){
  12. document.getElementById( 'd').innerHTML += i+ '<br>';
  13. }

数组的常用方法

字符串常用方法

配合HTML组件


  
  1. //<!-- 下拉菜单 -->
  2. var se = document.getElementById( 'se').value;
  3. //<!-- 单选/多选框 -->
  4. var form = document.getElementById( 'fo').lag; //lag是name属性
  5. for( var i = 0 ; i < form.length; i ++){
  6. if(form[i].checked){
  7. console.log(form[i].id); break; //操作
  8. }
  9. form[i].checked = 1; // 全选
  10. if(form[i].checked) //反选1
  11. form[i].checked = 0;
  12. else //反选2
  13. form[i].checked = 1;
  14. }

第二部分:其他小功能

定时执行函数


  
  1. var temp;
  2. function run(){
  3. console.log( 'zwz的1秒过去了<br>');
  4. }
  5. function start(){
  6. temp = window.setInterval( 'run()', 1000);
  7. }
  8. function stop(){
  9. window.clearInterval(temp);
  10. }

 动态更新时间组件


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title> </title>
  6. </head>
  7. <body οnlοad="retime()">
  8. <div id="d"> </div>
  9. </body>
  10. </html>
  11. <script>
  12. function retime(){
  13. var time = new Date();
  14. var year = time.getFullYear();
  15. var mouth = time.getMonth() + 1;
  16. var date = time.getDate();
  17. var hour = time.getHours();
  18. var min = time.getMinutes();
  19. var sec = time.getSeconds();
  20. document.getElementById( 'd').innerHTML = year + '年' + mouth + '月' + date + '日 ' + hour + ':' + min + ':' + sec;
  21. var thread = setTimeout( 'retime()', 1000);
  22. }
  23. </script>
  24. <style type="text/css">
  25. div{
  26. height: 200px;
  27. width: 1200px;
  28. background-color: gainsboro;
  29. }
  30. </style>

正则表达式


  
  1. function run(){
  2. var input = document.getElementById( 'in').value;
  3. // console.log(typeof(input));
  4. if(!( /^[a-zA-Z]\w{3,15}$/.test(input))){
  5. console.log( '输入有误');
  6. }
  7. }

输入栏提示文本


  
  1. <input type= "text" id= "in" value= "请输入" />
  2. var input = document.getElementById( 'in');
  3. input.onmouseup = function(){ this.focus();}
  4. input.onfocus = function(){ this.select();};

异常处理

比如我在代码中的alert函数上多写一个t,如果没有异常,就会直接在浏览器调试页面报错,如果有catch语句,则会在id为'd'的HTML元素中打印错误信息。


  
  1. function run(){
  2. try{
  3. alertt( 'hello zwz');
  4. } catch(e){
  5. document.getElementById( 'd').innerHTML = e.message;
  6. }
  7. }

滚动标题

实现的原理是每隔一小段时间,把最后一个字母放在最前面,来模拟滚动的效果。


  
  1. <script>
  2. var str = 'hello zwz!';
  3. function run(){
  4. document.title = str;
  5. str = str.substring( 1,str.length) + str.substring( 0, 1);
  6. }
  7. setInterval( 'run()', 200);
  8. </script>

JSON

另外有一种JSON模式需要着重学一下,这个是前端提交到后端必须要转换的格式

如果在后端的Java类中定义如下:(用var模拟后端Java类)


  
  1. var a = {
  2. 'people':[
  3. { 'name': 'zwz01', 'age': '18'},
  4. { 'name': 'zwz02', 'age': '19'}
  5. ]
  6. };

那么,JSON模式是这样的:


  
  1. var b = '{ "people" : [' + '{ "name":"zwz01" , "age":"18" },' + '{ "name":"zwz02" , "url":"19" }'+ ']}';
  2. var result1 = typeof(b); //结果为string类型

说白了,就是拿大括号  {   } 括了一下。这个时候b的数据类型是string字符串类型。

然后我们使用JSON.parse函数转化


  
  1. var c = JSON.parse(b);
  2. var result2 = typeof(c); //结果为object类型
  3. alert(c.people[ 0].name); //引用

这就说明c是对象类型,是将字符串转化成了对象模型。 也可以直接使用里面的元素

至于对象型转化为字符串,以后有机会再去查一下。

模拟Java类


  
  1. function People(name,age){
  2. this.name = name;
  3. this.age = age;
  4. this.say = function(){
  5. console.log( this.name + ' is ' + this.age + ' years old!');
  6. }
  7. }
  8. var p1 = new People( 'zwz01', 18);
  9. p1.say();

使用JS添加HTML组件


  
  1. //假设 <body>中有一个id为'u'的ul
  2. <script>
  3. var LiArray = document.getElementById( 'u').getElementsByTagName( 'li');
  4. var aNew = document.createElement( 'a');
  5. var aNewText = document.createTextNode( '百度');
  6. var aNewHref = document.createAttribute( 'href');
  7. aNewHref.value = 'http://www.baidu.com';
  8. aNew.setAttributeNode(aNewHref);
  9. aNew.appendChild(aNewText);
  10. LiArray[ 0].appendChild(aNew);
  11. var Body = document.body;
  12. var HrNew = document.createElement( 'hr');
  13. var HrColor = document.createAttribute( 'color');
  14. HrColor.value = 'red';
  15. HrNew.setAttributeNode(HrColor);
  16. Body.appendChild(HrNew);
  17. </script>

表格数据添加


  
  1. <body>
  2. <table id="msg" align="center">
  3. <caption>XXXX表 </caption>
  4. <tr>
  5. <td>学号 </td> <td>姓名 </td> <td>性别 </td>
  6. </tr>
  7. <input type="button" οnclick="addRow()" value="添加数据"/>
  8. </table>
  9. </body>
  10. <script>
  11. function addRow(){
  12. var form = document.getElementById( 'msg');
  13. var newRow = form.insertRow(); //返回新插入的行 (deleteRow(index)删除)
  14. newRow.insertCell( 0).innerHTML = '0413170337';
  15. newRow.insertCell( 1).innerHTML = 'zwz';
  16. newRow.insertCell( 2).innerHTML = 'nan';
  17. }
  18. </script>

最后编辑日期 2020 年 1 月 30 日


转载:https://blog.csdn.net/qq_41464123/article/details/104112582
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场