JS相关重点知识 (概况)

1.value和innerHTML没有联系,只是value是表单的一个特有属性,而innerHTML是通用的。


2.当从外部引入js文件时,该外部文件里面可以有多个方法,
   html页面中的onclick只选中其中一个方法即可。
     做法是在<script src="外部文件名.js"></script>
     注意:外部脚本不能包含<script></script>标签。
     
3. js有四种方法显示数据:window.alert();弹出警示框
                        document.write();将内容写到 HTML文件中
                        innerHTML;写入到HTML元素中
                        console.log()写入到浏览器的控制台  
         注意:1》当页面加载完成后执行document.write(),则会被覆盖。
           2》使用console.log(),在浏览器中按F12,然后点击console
      1》 <p>大家好</p>
 <button type="button" onclick="a()">点击</button>
 <script>
function a(){
document.write("糟了");
}
 </script>
            3》innerHTML比document.write先显示


4.js中数字可以是整数,小数和e,不需要引号。文字内容需要用单/双引号连接。


5.js字母大小写非常敏感
函数 getElementById 与 getElementbyID 是不同的。
同样,变量 myVariable 与 MyVariable 也是不同的。


6.js常见命名是用驼峰法。如:lastName


7.js中用分号来结束语句是可选的,并且用分号的作用是为了在一行可以编写多条语句。
        如:a=1;b=4;
        
8.js会忽略多余的空格,来提高可读性。


9.js中命名对象是使用键值对的方式,以{}开始和结尾。普通数组则是用[];
       <script>
//采用键值对的方式
var person={name:"liuaihong",age:12,job:"boss"};
document.write(person.name+"<p>");
document.write(person["age"]);
</script>


10. 若没有赋值为var,则默认为全局变量,记住,位置不能变!js是从上到下编译!
     window是全局变量,所有数据都属于window对象。
                <body>
         <p id="demo"></p>
           <script>
myFunction();
document.getElementById("demo").innerHTML=a;
                                        


=window.a;
function myFunction(){
a="hah";
}
</script>
</body>      

11.js中的字符串中可以使用任何符号,也可以使用转义字符,但是注意不能跟外部的引号一样即可。
                +符号=符号
                
12. ==意思是绝对相等,数据类型和值都必须相等。      
    x+=y意思是x=x+y
    
13.字符与数字相加,返回字符串,数字与数字相加,返回数字。 
        注意:  空文本 + 数字得到的运算结果都是把数字转成字符串,无论文本有多少个空格。但是空


格会计入长度。
      var re=""+5;显示"5" 
      var re="  "+5;显示"  5"//空格也会显示
      var re=5+5+"abc";显示"10abc"
      var re=""+5+5+"abc";显示"55abc
      
 14.只有单独的if 语句时,条件为true才会执行,当不为true时,则不执行任何代码。         
 
 15.时间的函数:var d=new Date();
                d.getHours();//获取当前时间
                d.getDay();//获取星期几      
                
16.switch情况,当两种情况相同时,可以只在第一个情况下面写代码。
switch(number)
{
case 1:alert("1");break;
case 10:
case 11:alert("10 或 11");break;
default:alert("都不是");
}           

17. for in是循环遍历对象的属性值
function myFunction(){
var person={name:"liu",age:12,address:"haha"};//对象数组的书写


方式
var x;
var txt="";//txt需要设置值,不然会显示为undefined
for(x in person){
txt=txt+person[x];//需要加上txt,不然只会遍历最后一个


的值

}
document.getElementById("demo1").innerHTML=txt;
}

18.while是遍历为true时的值。 do while是先进行一次代码的执行,再判断,所以最少执行一次。


<script>
  function myFunction(){
  var i=6,txt="";
  do{
  txt=txt+i;
  i++;
  }
  while(i<5);
  document.getElementById("demo").innerHTML=txt;
  }
  
</script>


19. break是终止循环,continue是跳出本次循环,而继续执行其后面的代码,如果有的话。


20.typeof是用来检测变量的数据类型,null可以把变量的值改变,改为空,但是其数据类型还是不会变。


而undefined也是清空对象,但是类型也成了undefined.


21.js中有5种数据类型:string ,number,boolean,object,function
        3种对象类型:Object,Date,Array
        2种不包含任何值的数据类型:null,undefined
        
22.一元运算符可以把字符类型转化为数字类型:x=+y为number类型。        


23.正则表达式(RE),使用单个字符串来描述、匹配一些类符合某个语法规则的字符串搜索模式,一般用于
   search()和 replace()方法。          
   RegExp对象是一个预定义了属性和方法的正则表达式。
   test()是检测一个字符串是否匹配某个模式。
            var patt=new RegExp("e");
document.write(patt.test("the eel"));//返回true
document.write(patt.exec("hello  eee"));//返回e,不匹配就返回null

24.try 和 catch是成对出现的
try{
addlert("welcome!");
}
catch(err){
alert(err.message);
}

25. 在js输出语句中直接用回车换行是会报错的。
            注意,不能对return语句进行换行。
           注意,定义数组和对象,最后一个不能加逗号
    points = [40, 100, 1, 5, 25, 10,];
    websites = {site:"菜鸟教程", url:"www.runoob.com", like:460,}
            
26.表单自动验证使用required
<form action="demo_form.php" method="post">
 <input type="text" name="fname" required>
 <input type="submit" value="提交">
</form> 

27.获取表单的值
   var fname=document.forms["myForm"]["fname"].value;
 
28.<a href="javascript:void(0);">点击我什么都不会发生</a>
   <a href="#">点我会调到默认的当前页的顶部</a> 
   
29.通常运算符 ( = + - * / ) 前后需要添加空格:
       var x = y + z;
        通常使用 4 个空格符号来缩进代码块:    
        function toCelsius(fahrenheit) {
   return (5 / 9) * (fahrenheit - 32);
}  
         通常左花括号前加一个空格,右花括号单独放在一行
  for (i = 0; i < 5; i++) {
   x += i;
   }  
   - 通常在 JavaScript 中被认为是减法,所以不允许使用。   一般使用下划线_. 
   


js函数


1.函数显式参数(Parameters)与隐式参数(Arguments) ;


2.如果一个函数调用前使用了new关键字,则这是一个构造函数
function myFunction(arg1, arg2) {
this.firstName = arg1;
   this.lastName  = arg2;
}
    var x = new myFunction("John","Doe");
    
3.call()方法和apply()方法是预定义的两个方法,两个方法的第一个参数必须是对象本身。
myObject = myFunction.call(myObject, 10, 2);     // 返回 20
myObject = myFunction.apply(myObject, myArray);  // 返回 20

4.闭包就是一个函数引用另一个函数的变量,因为变量被引用着所以不会被回收,因此可以用来封装一个私


有变量。这是优点也是缺点,不必要的闭包只会增加内存消耗。
     或者说闭包就是子函数可以使用父函数的局部变量,还有父函数的参数。
     闭包是可访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。


HTML DOM文档对象模型


1.通过 HTML DOM可访问js html文档的所有元素。


2.var x=document.getElementById("demo").getElementsByTagName("p");
  document.write(x[1].innerHTML); //根据标签查找,p是一个标签。
  document.getElementsByClassName("intro");函数来查找 class="intro" 的元素;
  document.getElementById("image").src="a.jpg";//可以改变html的属性,原图为b.jpg,现改为a.jpg
  document.getElementById("p2").style.color="blue";//可改变css的样式,比如改变颜色等。
  document.getElementById("p1").style.visibility="hidden";//改变文本,使之隐藏。
  doucment.getElementById("P2").addEventListener("click",displayDate);//点击时,事件加载。


js对象


1.js是基于prototype,而不是基于类的。
  prototype 属性使您有能力向对象添加属性和方法。
2.js用Infinity来表示数字的无穷大。
3.一个数字除以一个字符串结果不是一个数字、一个数字除以一个字符串数字结果是一个数字
var x = 1000 / "Apple";//不是数字,返回false
var y = 1000 / "1000";//是数字,返回true
4.String是一个字符串对象,a.lenght计算字符长度
                      a.indexOf("")计算字符串出现的位置,没有返回-1
                      a.match("")查找字符串中特定的字符,若找到则返回这个字符。
                      a.replace("新的","旧的")替代指定字符
                      a.toUpperCase()大写
                      a.toLowerCase()小写
                      
5.Array数组对象:var a=["一","二","三","四"];
                       a.concat(b,c);//合并两个数组
                       a.shift();//删除数组第一个元素
                       a.pop();//删除数组的最后一个元素
                       aunshift("");//在数组最前面加上元素
                       a.push("xxx");//在数组末尾加上一个元素
                       a.reverse();//将数组元素顺序反转排序
                       a.sort();//按升序排列数组
                       a.toString();//数组转化成字符串
                       
6.Math对象: a.Math.round(4.3);//返回最接近4.3的数,4
           a.Math.random();//返回0-1之间的随机数
           a.Math.max(a,b,c..);返回a,b,c..中最大的一个数   
           a.Math.min(a,b,c..);返回a,b,c..中最小的一个数                  
                       
                      


JS BOM浏览器对象模型


1.location.href;//返回URL
  location.hostname;//返回web主机域名
  location.pathname;//返回当前页面的路径和文件名
  location.port;//返回web主机的端口
  location.protocol;//返回使用的web协议
     注意:不能使用window这个前缀。
     
2.history.back();//返回上一个地址
  history.forward();//返回下一个地址
  
3.navigator.attribute;//返回当前浏览器的信息 


4.弹窗alert();//提示
confirm("sometext");//警告
prompt("sometext","默认");//输入数据并继续


5.setInterval(function(){},时间);//间隔相同的时间执行相同的代码,1000ms为1秒
  clearInterval(a);//停止
  setTimeOut(function(){},时间);//设置方法执行的时间
  clearTimeOut(a);//停止,你必须在它设置的时间之前阻止它


原文:https://blog.csdn.net/qq_34954786/article/details/77987338 

原文地址:https://www.cnblogs.com/Antwan-Dmy/p/10681005.html