JavaScript

 

 

JavaScript
    
    概述
        属于原生JS和Java没有任何半毛钱的关系,是在浏览器环境下运行的一种脚本语言
        可以用来和数据进行交互,分为界面交互和数据交互
            界面交互
                指的是当触发某种事件的时候, 如:点击按钮,鼠标移动
            数据交互
                指的是ajax发起http请求获取数据
                
    常见的使用三种方式(和CSS是方式一样)
        行内式  基本不常用
        外链式  <script type="text/js" src = "想要连接的JS的文件" ></script>
        嵌入式    <script> 内嵌代码块 </script>
            
    常见的输出
        alert("hello word")      弹框的形式显示
        console.log("hello word")    按F12/Fn+F12在浏览器的console下可以检查输出
        console.dir("hello word")
        console.table("hello word")     
        document.wirte("hello word")    直接显示在浏览器页面上
        

    JS操作CSS的属性时注意
        当事件触发时,修改属性时注意
        全部是小写的直接用
         xxx -> style.xxx = "";
        中间存在"-" 将"-"后面的第一个单词大写   xx-xx -> style.xxXx = ""; class 属性较为特殊 class -> style.className = ""; <script> window.onload = function() { var oBtn = document.getEleementById("btn"); var oDiv = document.getEleementById("div"); oBtn.onclick =function() { oDiv.style.textSize = 25px; oDiv.style.lineHight = 20px; } } </script> 变量的命名规则和定义变量 严格区分大小写 第一个字母必须是 字母/下划线/$ 其他字母可以是字母 下划线 /美元/数字 支持匈牙利命名规则 第一个字母代表数据类型 nnum stemp var nnum = 12; var nnum = "12"; var stemp = "aa"; 变量的作用域 函数的调用 要往回找 函数的定义阶段 首先在函数内部找 -> 内部找不到就往外找,直到找到全局为止 全局变量和局部变量 全局变量 num=10; 局部变量 所有用var定义出来的变量都是局部的 var num = 10; 作用域和其他的语言基本相同,看有作用域的变量是全局变量还是局部变量,全局变量是对这个.html都有效,局部变量只在当前函数下有效 函数 jS中的函数具备预解析功能 函数的调用可以放在定义函数的上面, 普通函数 eg: move() 定义函数 function move(参数位置) { //执行的代码块 document.write("ok"); } 匿名函数 函数没有名字 var text = function(x1,x2) { return x1 + x2; ] 封闭函数 如果是普通的函数的话,如果有多个同名函数,只有一个可以被调用,但封闭函数可以做到让每个同名函数都可以执行里面的代码块 <script> 普通函数 function func() { alert(1); } func() 第一种封闭函数 ;(function() { function func() { alert(2); } func() })() 封闭函数的语法结构 第一种封闭函数的语法结构 !(function() { alert(3); })() 第二种封闭函数的语法结构 ~(function() { alert(4); })() </script> 常见的数据类型 number int/float boolean true/false string undefined 未定义/未声明的 object 有空对象 var ret = null 有数据的对象(触发事件) 入口函数 在hender标签中进行定义 <header> <script> window.onload = function() { var oBtn = document.getElementById("btn"); var oDiv = document.getElementById("div"); oBtn.onclick =function() { oDiv.style.textSize = 25px; oDiv.style.lineHight = 20px; } } </script> </header> 常见的鼠标的事件 onclick 当点击时执行什么 onmouseover 当鼠标滑过时执行什么 onmouseout 当鼠标离开时执行什么 oBtn.onclick = function() { // 执行的代码块 oDiv.style.display = "block"; } js中的基本操作 num = prompt("请输入字符串"); //相当于python中的 input() 判断数据类型 typeof() && || ! >>(往右移几位就除以2的n次方) <<(往左移几位就乘以2的n次方) "==" 判断数值是否相等(不管数据类型是什么)  相对相等 "===" 判断数字是否相等 + 数据类型       绝对相等 条件语句 if(条件语句){代码块} else if(条件语句){代码块} else{代码块} 循环 while循环 var i=0; while(i>10) { // 执行相应的代码块 i++; } for循环 for(var i=0;i<10;i++) { //执行相应的代码块
          ; } switch case 循环 var date = prompt("请输入内容") switch(date): { case 1: document.write("今天是星期一"); break; case 2: document.write("今天是星期二"); break; case 3: document.write("今天是星期三"); break; case 4: document.write("今天是星期四"); break; case 5: document.write("今天是星期五"); break; case 6: document.write("今天是星期六"); break; case 7: document.write("今天是星期日"); break; default: document.write("没有你要查找的这个星期数"); } 数组 定义数组的两种方式 var arr = [] //定义一个空数组 var arr = new Array(1,2,3) //里面包含1,2,3三个元素 操作数组常用的方法 length 获取数组的长度 push() 在末尾增加一个元素 pop() 删除末尾的元素 splice() splice(位置下标,删除元素的位置,增加元素的位置) splice(位置下标,删除元素的位置)    只删除不增加 splice(位置下表)          从第几个位置后,该位置后面的所有元素都删除 reserve()   数组中的元素翻转 join()   将数组转换为字符串 ret = arr.join("-") indexof()   返回元素中第一次出现的索引值 数组去重 var arr = [11,22,33,88,22,44,55,44,22,,66]; var new_arr = []; for(var i=0;i<arr.length;i++) { // document.write(arr[i]); // 去重的条件 if(arr.indexOf(arr[i]) == i) { new_arr.push(arr[i]); } } document.write(new_arr); 字符串 常用的操作方法 parseInt() 去掉小数点后的的值 var num = 1.2 alert(parseInt(num)) -> 1 parseFloat() var num = 1.2 alert(parseInt(num)) -> 1.2 split() 将字符串进行切割 indexof() 返回元素中第一次出现的索引值 substring(start,end) 左闭右开 定时器 setTimeout() 只能执行一次的定时器 setInterval() 可以进行无限次代码执行 clearTimeout() clearIntveral() 两个定时器的参数相同 var result = null; result = setIntveral(function() { ;// 里面需要执行的代码块 },50); clearIntveral(result) result = null; 内置的对象和方法 自定义对象 {name: "xiaoqiang", age: 18} -键不用加引号,加上也不出错 -值如果是字符串必须写双引号 new关键字形式 内置的Date对象 --> Python中的内置模块 var oDate = new Date(); JSON对象   字符串转对象 --> obj = JSON.parse(string)   对象转字符串 --> s = JSON.stringify(obj) Math对象 Math.ceil(); //向上取整。 Math.floor(); //向下取整。 --> <!-- Math.round(); //四舍五入。 Math.random(); //0.0 ~ 1.0 之间的一个伪随机数。【包含0不包含1】 //比如0.8647578968666494 Math.ceil(Math.random()*10); // 获取从1到10的随机整数 ,取0的概率极小。 Math.round(Math.random()); //可均衡获取0到1的随机整数。 Math.floor(Math.random()*10); //可均衡获取0到9的随机整数。 Math.round(Math.random()*10); //基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半。 因为结果在0~0.4 为0,0.5到1.4为1...8.5到9.4为9,9.5到9.9为10。所以头尾的分布区间只有其他数字的一半。 RegExp(正则) 两种定义方式: new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$") /new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$")/ 匹配模式 g 全局 i 忽略大小写 正则表达式中间不能加空格 .test() --> .test(undefined) --> .test("undefined") 全局模式下会有一个lastIndex属性

 

原文地址:https://www.cnblogs.com/wangxiongbing/p/10141124.html