前端之JavaScript--基础


    

JavaScript
    独立的语言,浏览器具有js解释器
    
一.  JavaScript代码存在形式:
        - Head中
                <script>
                    //javascript代码
                    alert(123);
                </script>
                
                <script type="text/javascript">
                    //javascript代码
                    alert(123);
                </script>
        - 文件
            <script src='js文件路径'> </script>
            
        PS: JS代码需要放置在 <body>标签内部的最下方
        
 二.  注释
        当行注释 //
        多行注释  /*     */
        
 三.  变量:
        
        python:
            name = 'alex'
        JavaScript:
            name = 'alex'     # 全局变量
            var name = 'eric' # 局部变量
        
 四.  写Js代码:
        - html文件中编写
        - 临时,浏览器的终端 console
        
          
 五.  基本数据类型
        数字
            a = 18;
        字符串
            a = "alex"
            a.chartAt(索引位置)
            a.substring(起始位置,结束位置)
            a.lenght    获取当前字符串长度
            ...
        列表(数组)
            a = [11,22,33]
            
        字典
            a = {'k1':'v1','k2':'v2'}
        布尔类型
            小写
      
 六.  for循环
        1. 循环时,循环的元素是索引
        
            a = [11,22,33,44]
            for(var item in a){
                console.log(item);
            }
            
            a = {'k1':'v1','k2':'v2'}
            for(var item in a){
                console.log(item);
            }
            
        2. 
            for(var i=0;i<10;i=i+1){
                
            }
            
            a = [11,22,33,44]
            for(var i=0;i<a.length;i=i+1){
                
            }
            
            不支持字典的循环
    
      
 七.  条件语句
        if(条件){
        
        }else if(条件){
            
        }else if(条件){
            
        }else{
            
        }
        
        ==   值相等
        ===  值和类型都相等
        &&   and
        ||   or
        
    
 八.  函数:
    
        
        function 函数名(a,b,c){
        
        }; a,b,c属于形参
        
    不加分号也可以运行,但是为了程序员的荣耀和尊严,加上吧?

        函数名(1,2,3)
    
       
    
    

 九.  Dom : 文件对象类型(Document Object Model,DOM)
 
    是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式.
    DOM把网页和脚本以及其他的编程语言联系了起来.
    DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容
    DOM权当是把整个HTML文件,给你转化成一个对象。

    html : 裸体的人
    css : 穿上衣服
    js : 动起来

    想让谁动起来,就要先找到它。
    修改它的内容包括(删除,改变内部内容,修改属性例如id = 'i1' ,name = 'ff' 都叫属性。

    1、找到标签
        获取单个元素        document.getElementById('i1')
        获取多个元素(列表)document.getElementsByTagName('div')
        获取多个元素(列表)document.getElementsByClassName('c1')
        a. 直接找
            document.getElementById             根据ID获取一个标签
            document.getElementsByName          根据name属性获取标签集合
            document.getElementsByClassName     根据class属性获取标签集合
            document.getElementsByTagName       根据标签名获取标签集合
        
        b. 间接
            tag = document.getElementById('i1')
            
            parentElement           // 父节点标签元素
            children                // 所有子标签
            firstElementChild       // 第一个子标签元素
            lastElementChild        // 最后一个子标签元素
            nextElementtSibling     // 下一个兄弟标签元素
            previousElementSibling  // 上一个兄弟标签元素
            
             parentNode          // 父节点
             childNodes          // 所有子节点
             firstChild          // 第一个子节点
             lastChild           // 最后一个子节点
             nextSibling         // 下一个兄弟节点
             previousSibling     // 上一个兄弟节点

    2、操作标签
        
        a. innerText
            
            获取标签中的文本内容
            标签.innerText
            
            对标签内部文本进行重新复制
            
            标签.innerText = ""
           
           outertext
           
           innertext HTML内容
           
           value 值
           
          属性 : 
          attributes                // 获取所有标签属性
            setAttribute(key,value)   // 设置标签属性
            getAttribute(key)         // 获取指定标签属性
 
            /*
            var atr = document.createAttribute("class");
            atr.nodeValue="democlass";
            document.getElementById('n1').setAttributeNode(atr);
            */
                
        b. className
            tag.className =》 直接整体做操作  //获取所有类名
            tag.classList.add('样式名')   添加指定样式  //添加类
            tag.classList.remove('样式名')   删除指定样式  //删除指定类
    
            PS:
            
                <div onclick='func();'>点我</div>
                <script>
                    function func(){
                    
                    }
                
                </script>
        c. 标签操作
            创建标签 : 
                //方法一:
                    var tag = document.createElement('a')
                    tag.innerText = "ff"
                    tag.className = "c1"
                    tag.href = "http://www.cnblogs.com/ugfly/"
                     
                    // 方式二
                    var tag = "<a class='c1' href='http://www.cnblogs.com/ugfly//wupeiqi'>ff</a>"
            
            操作标签 : 
                    / 方式一
                    var obj = "<input type='text' />";
                    xxx.insertAdjacentHTML("beforeEnd",obj);
                    xxx.insertAdjacentElement('afterBegin',document.createElement('p'))
                     
                    //注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd'
                     
                    // 方式二
                    var tag = document.createElement('a')
                    xxx.appendChild(tag)
                    xxx.insertBefore(tag,xxx[1])

        e. checkbox  
                获取值
                checkbox对象.checked
                设置值
                checkbox对象.checked = true
    
    补充 :
    
        console.log                 输出框
        alert                       弹出框
        confirm                     确认框
          
        // URL和刷新
        location.href               获取URL
        location.href = "url"       重定向
        location.reload()           重新加载
          
        // 定时器
        setInterval                 多次定时器
        clearInterval               清除多次定时器
        setTimeout                  单次定时器
        clearTimeout                清除单次定时器
    
    
 十.  对象
    
> 创建方式
> 
>   var s = "str"
    var s = new String("str")
    
    
    属性和方法 : 
    var s  = "hello"
    console.log(s.length)
    console.log(s.toUpperCase)
    console.log(s.charAt(1))  :通过索引找字符
    console.log(s.indexOf("l")) : 通过字符找索引
    
    
***
    字符串处理方法 : 
    常用的有 : 
      字符串截断 : 
        substr(1,3) : 从1开始截三个  (截断起始位置,截断长度)
        substring(1,3) : 从1开始数,只取第三个  (截断起始位置,拿到的数的位置)
        这俩和切片一样,拿前不拿后.
        
    切片 : 
        slice(1,3) : 拿前不拿后    
          和substr没区别
          
    字符串切割 :
        split()  : 
        
***
    如何创建数组?
      方式1 : var arr=[11,2,33];
      方式2 : var arr2=new Array(1,2,3)
      方式3 : var arrname = new Array(长度)   定长
      
      方式1和方式2不同点在于 :1 返回的类型是object,2 返回的类型是
      
      
    数组方法 :
        var arr=[11,22,33,4,'hello',true];
        console.log(arr[4])

    join方法 :
        在JS里面,join方式映射到数组.
        py里面使用join方法,没有数字概念
        
    reverse 反转  sort 根据ASCii 码排:
        var s =[1,2,3,4,5,111]
        console.log(s.reverse())反转
        console.log(s.sort())   黑红梅方式的比较        
    push pop :都是在最后位置进行操作
        这俩都是进行的一个栈操作.
        先进后出.
        
 十一.  三元运算符 :
        
    console.log(2>1?2:1)  
    
    
    
 十二.  Math对象 (类似于py里的sub函数)  : Math是对象,可以直接调用

        console.log(Math.max(1,2,3));
        console.log(Math.min(1,2,3));
        
        floor : 向下取整
            console.log(Math.floor(1,23)); : 1
            console.log(Math.floor(1.67)); : 1
        ceil : 向上取整
            console.log(Math.ceil(1.00));  :1
            console.log(Math.ceil(1.01));  :2
        
        
十三. function 函数

    arguments : 相当于py中的 *args

    匿名函数 : 使用完会立即回收
        
        PY中 : lambda x,y :x+y
        JS :  也叫自执行函数
            (function foo(i){
                alert('en')
            })(i)
        
            ### 注意 : js的函数加载执行和Python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或者下面都可以.
***

转载于:https://www.cnblogs.com/ugfly/p/7718259.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值