js笔记

本文深入讲解JavaScript的基础知识,包括数据类型、函数定义、流程控制等,并详细介绍了DOM操作方法,如节点获取、属性设置及事件绑定等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js常见错误解析:数据类型:Undefined 声明未赋值 Null空 Boolean布尔 String字符串 Number数值 Object对象类型 Array数组
                            大写是类型,小写是值Null中只有一个null值

一.事件:用于html中响应函数(调用函数) onclick='函数名(传参)'

     鼠标事件:
         onclick/ondblclick/onmouseover/onmouseout/onfocus/onblur/onselect/onchange/
         onload/onunload  script中调用函数 直接写函数名 eg:add()
     键盘事件:
     增加结点的事件:addEventListener('click',function(){},true)
                  stopPropagation阻断消息传播即点击div不会触发body点击事件
                  如果body增加事件用里true,先触发body点击再触发body点击


二.函数:定义函数function 函数名(){函数体}
   参数:函数名(参数1,参数2) 
   返回值:
   function  app2(x,y)
{
       var sum,x,y;
 
       sum = x * y;
    
       return sum;
  
   }


   result=app2(5,6);
   结果result是30,return的作用是储存函数的结果为sum的值;
   如果没有return,不知道结果是x?y?sum?


三.语句:if (true) {语句体;}
if (true) {语句体;} else {语句体;}
switch(未知数){case 1:执行代码块 ;break;
default:不同时执行的代码 }
for (var i = 0; i < Things.length; i++) {
Things[i]
}
继续循环continue;退出循环break 编程练习有困难第七章编程练习


四.变量:储存东西(数值,字符串,布尔值)
用var命名,可以命名多个var num1,num2;   
操作符:= 赋值 ==等于 !=不等于;!非;
+字符串连接,数值想加;++自身加一;%取模/求余;
&&并且;||或者;
-= 相减后赋值a-=b即a=a-b;%= 取余后赋值a&=b即a=a%b;


五.数组:var A=Array(5)
调用:A[0]
可以用var 数组名=Array(X)进行定义;X代表数组长度即储存的数据;
         数组赋值:直接赋值eg: myarray[0]=100
    创建同时赋值eg: var myarray=new Array(100,66,88,99)
  直接输入数组eg: var myarray=[100,66,88,99]
数组长度属性:length,调用 数组名.length,一般是索引X+1
二维数组:表示和赋值和调用方法:myarray[][]
      定义方法一:var myarr=new Array();//声明一维
           for(var i=0;i<2;i++){ //一维长度2
             myarr[i]=new Array(); //声明二维
  
                 for(var j=0;j<3;j++){ //二维长度3 


                           myarr[i][j]=i+j;//赋值,每个元素值为
i+j
     };}
思路:声明长度声明长度赋值
      定义方法二:var Myarr=[[a,b,c],[d,e,f,]]
  myarr[0][1]表示b,myarr[1][2]表示f
      定义方法三:var myarr=new Array()
       myarr[0]=[a,b,c]  参考数组赋值部分
        push()添加  shift()删除


六.对象:所有事物都是对象,每个对象都有属性和方法。
      属性:对象特定性质;访问对象属性:objectName.propertyName。
            offsetTop初始距离浏览器高度
      方法:在对象上执行的动作。访问对象方法:objectName.methodName()。


七.节点:
   获取节点:
            document.querySelector('')    可获各种,只能获取第一个,不是数组
            document.querySelectorAll()
            document.getElementById('')获取id
   document.getElementsByName('')获取name
   document.getElementsByTagName('')获取标签
            document.getElementsByClassName('')获取class
   后两个相当于数组,调用属性和方法需要在后面加索引[],用函数覆盖所有
   节点的属性:className属性,即标签的class
     style属性,该属性的属性包括:color display backgroundColor     
                        css中带-的去掉变为大写如:border-radius  borderRadius
  用法;id直接用  格式:Object.style.color所赋的值要加引号或num+'px'
     onclick增添一个事件,赋值语法 .onmouseover=function(){displayDate()}
     lenght获得name/tag的数量,[x]是第x+1个节点
     nodeName名称nodeValue值nodeType类型 
     childNodes访问该节点下的所有子节点,数组的形式存在,parentNode父节点
     firstChild第一个子节点与childNodes[0]一致,lastChild最后一个
     nextSibling下一个节点previousSibling上一个节点
              getAttribute('index')获取自定义属性index值
以下前面对象都是父节点
     appendChild(X)对象最后一个子节点后添加一个新的子节点X
     insertBefore(X,Y)注意X,Y均为节点名 X为新节点名插在Y这个节点前
     removeChild(X)删除对象的节点 replaceChild(new,old)
   节点的方法:getAttribute('')该方法可用于获取节点的属性,引号内写属性名
     setAttribute('','')设置节点属性值,属性名 属性值
   创建节点:var newnode=document.creatElement("p")   //选择创建的节点
            newnode.innerHTML="php"        //输入内容
            document.getElementById("parsentnode").appendChild(newnode)//节点创建的位置
                父节点最后加入一个元素
                insertBefore插到前面,insertAfter插到后面
创建节点基本语法document.createElement("")里面输入创建类型
             document.createTextNode("")里面输入文本
八.类
    function classname(){属性,方法,返回值}


    prototype所有类都有的对象,可将方法只存储一遍




对象
Date对象
    var myDate = new Date();声明调取内置对象,唯一,仅可以Date()
                  以下是该对象的方法,必须调取才能使用
    myDate.getFullYear();//获取完整的年份(4位,1970-????)  set设置  
    myDate.getMonth();       //获取当前月份(0-11,0代表1月)  set设置  
    myDate.getDate();        //获取当前日(1-31)  set设置 
    myDate.getDay();         //获取当前星期X(0-6,0代表星期天)  
    myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)  
    myDate.getHours();       //获取当前小时数(0-23)  set设置  
    myDate.getMinutes();     //获取当前分钟数(0-59)  set设置
    myDate.getSeconds();     //获取当前秒数(0-59)  set设置
    myDate.getMilliseconds();    //获取当前毫秒数(0-999)  
    myDate.toLocaleDateString();     //获取当前日期(年月日)   
    myDate.toLocaleTimeString();//获取当前时间(12小时 时分秒 自动加0)
    myDate.toLocaleString( ); //获取日期与时间最牛逼 
    myDate.setFullYear();//括号内设置 先设置后使用
    myDate.setTime(myDate.getTime()+60*1000)设置时间为一分钟后的时间


string字符串对象  赋值即声明调取内置对象了,不唯一
    属性:length
    方法;charAt(x)返回索引为x的字符,字符要加引号(下同)
indexOf(x,y)返回字符x第一次出现的位置,从y检索,无y从头
split(x,y)将字符x变成逗号,最多变y次,无y全变
substring(x,y)返回从索引x开始到索引y结束的字符串,无y到结尾
slice(x,y)同substring()
substr(x,y)从索引x开始提取y个字符,无y到结尾


Math对象,直接用作对象即可
ceil(x)将x向上取整;floor(x)向下取整,结果肯定比x小
round(x)四舍五入,random()随机数0-1不传参,乘10得到0-10
Math.floor(Math.random()*10)随机输出不大于10的整数


Array数组对象, 和string对象差不多,先赋值后使用
   属性:length
   方法:array1.concat(array2,array3)连接数组,不改变原来的数组
       join(分隔符)调用该数组所用元素,无指定分隔符则用逗号,()和("")不同
       reverse()颠倒数组内元素
       slice(x,y)和字符串的substring(x,y)一样,只不过slice是数组
       sort(方法函数)数组排序,方法函数可以直接输函数名
return a-b //升序,冒泡排序,无需理解


document对象,属性:body获取body
获取网页宽度var w=document.documentElement.scrollWidth
  || document.body.scrollWidth;
        浏览器可视区域变成clientWidth  网页尺寸offsetWidth 滚筒条的高scrollTop


window对象,和Math一样直接调用方法即可
    不需要写window的方法:alert() 
    需要写window的方法:open("网址","方式","宽 高")


    计时器:setInterval(函数名,时间)函数名格式为name或"name()"时间单位为毫秒
                取消计时器clearInterval(定义的对象名)对象名不需要加冒号
  setTimeout(函数名,时间)时间为延迟时间,执行一次,除非自身重复自身
clearTimeout(定义对象名) 
     设置自身调用时如果循环函数内有var则无法停止,因为每循环一次就定义一个计时器


history对象,前面可以加window.也可以不加
    属性:window.history.length浏览url的数量,url包括锚
    方法:back()加载上一个url,forward()加载上一个url
go(x)表示:x为正时相当于点x次前进,为负相当于点x次后退,0即当前
location.对象,和history对象同理,作用获取当前的url
    属性:href整个url host网址和端口
    方法:assign()  reload()  replace()
navigator对象,获取浏览器信息,用法同history
    属性:appName appCodeName appVersion platform
useAgent浏览器各种信息
screen对象,获取屏幕信息,用法同上
    属性:width宽 height高 availWidth可用宽 availHeight可用高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值