zoukankan      html  css  js  c++  java
  • Javascript 基础汇总

    1 javascript字符串

      属性:.length  计算字符串长度

      转义字符     换行   

                          回车 

      字符串断行 需要使用反斜杠  

    2 字符串方法

    charAt(n)  返回指定索引位置的字符

    str.concat(str)  连接两个或多个字符串,返回连接后的字符串

    indexOf('str') 返回 指定字符 在字符串中第一次出现的位置  若果没找到 返回-1

    lastIndexOf() 返回 指定字符 在字符串中最后一次出现的位置

    startsWith() endWith() includes() 返回字符串是否以指定字符串开始、结束、或包含指定字符串

    match()  str.match(reg) 在指定的字符串内 检索指定的字符值 找到一个或多个正则的匹配 /xxx/g  返回一个数组 ,若没有匹配的内容则返回null

    replace('str','str') 替换所匹配的字符串  replace(/microsoft/i,'w3cschool') 匹配Microsoft 并替换w3cschool

    search() 查找相匹配的字符串,返回索引位置

    slice()  提取字符串的片段,并在新的字符串中返回被提取的部分

    split()  把字符串分隔成子字符串数组

    substr(m,n)  在字符串中抽取从 m开始位置 的 长度为n个数目的字符  'helloworld'.substr(2,4)  //llow

    substr(m)     返回字符串中从 m开始位置到结尾的字符串

    substring(m,n)  提取字符串中两个指定索引号之间的字符串

    toLowerCase() 转小写

    toUpperCase() 把字符串转为大写

    toString() 返回字符串对象值

    trim() 移除字符串首尾空白 

    3  for/in循环  for (x in person){txt = txt +person[x];}

    continue 在for  while  do-while 等循环体中跳过本次循环,继续执行下次循环。

    break 终止循环,执行循环后面的语句,

    return 将函数的值返回至主调函数

    4   typeof xxx  返回类型  typeof 3.14    //number     null //object

         constructor() 

       obj  instanceof object  基于原型连判断

    5 类型转换

       String(num)   将数字转换为字符串 并 返回

      (num).toString()  同上

    Number('3.14')  将字符串转换为数字3.14

    parseFloat()  

    parseInt()

    6 正则表达式

      test() 方法 检测字符串中是否有匹配的正则 ,若有返回 true ,否则返回 false         

                /e/.test("the best things in life are free")       true

      exec() 方法 检索字符串中匹配的正则表达式,返回一个数组,存放匹配的结果。未找到则返回null

               /e/g.exec("the best things in life are free")       e

    7 JSON字符串转换为javascript对象  

      json数据一般是从服务器中读取,在网页中显示数据,若在网页中直接设置json字符串,首先创建javascript字符串为json格式的数据:

    1 var text = '{ "employees" : [' +
    2 '{ "firstName":"John" , "lastName":"Doe" },' +
    3 '{ "firstName":"Anna" , "lastName":"Smith" },' +
    4 '{ "firstName":"Peter" , "lastName":"Jones" } ]}';

    然后使用javascript内置函数JSON.parse()字符串转化为javascript对象:var obj = JSON.parse(text);   $.parseJSON('{"name":"code","age":"33"}') 必须为严格json格式

    JSON.stringify() 用于将javascript值转换为JSON字符串 

    eval()将后台写的json格式字符串处理成json对象数组     eval("("+jsonstr+")")   常用

    8  javascript:void(0); 是一个死链接,不会发生任何变化,可用作一些情况下的禁止刷新页面

    9 事件监听 

     addEventListener()   向指定元素添加监听事件  .addEventListener('click',function(){})     window.addEventListener("resize",function(){})

    removeEventListener() 移除事件的监听            .detachEvent("onclick",function(){})  //ie8     .attachEvent("onclick",function(){})

    10 数组

     concat() 合并两个数组;合并三个数组  arr1.concat(arr2,arr3);

     join() 用数组的元素组成字符串 join("-")

    pop() 删除数组的最后一个元素

    push() 数组的末尾添加新的元素 

    reverse() 将一个数组中的元素的顺序反转排序

    shift() 删除数组的第一个元素

    slice() 从一个数组中选择元素 

    sort() 数组排序 数字排序 升序 降序sort(function(a,b){return a-b/b-a})

    splice() 在数组的第2位置添加一个元素  splice(2,0,'lemon','kiwi')  splice(2,3)删除从第二位到第三位的数组

    toString() 转换数组到字符串

     unshift() 在数组的开头添加新元素

    比较不同点

    a.  slice 会创建一个新数组  slice(3)会截取从3开始到数组最后的部分;slice(2,6)会截取原数组从第二位到第六位的4个数组。

    b.  splice 删除或添加数组里的任意项  splice(3)删除从3位及之后的数组项;splice(2,5)删除数组中的从2到5的数组项,致使数组length值改变;splice(para1可以添加到的位数,para2删除的项数,val1添加的值,val2...)。

    c.  splite 根据特定的字符切割字符串并且返回数组 str="a-saaa-sss-eee-www";  str.slite("-"); ['s','aaa','sss',...]

    arr.forEach(function(x,index,a){ console.log(x  index  a)});

    arr.map(function(x){return x+10} )   返回数组,不修改原来的数组

    arr.filter(function(x,index){return  index%3 ===0 || x>8;)}  筛选出每个数组成数组,不修改原来的数组

    arr.every(function(){})  对每个成员进行判断,有一个返回false 则返回false

    arr.some(function(){})   成员中又一个成员满足条件 则返回true

    11 Math算法

    round(2.3) 四舍五入 ,不保留小数点               Math.round()

    toFixed(n)  四舍五入,保留n 位小数

    random() 返回0至1之间的随机数 Math.random()

    max()  返回两个数中最大的那个    Math.max()

    min()  返回两个数中最小的那个   Math.min()

    Math.abs(-2) 返回数的绝对值

    Math.ceil() 对数字进行上舍入

    Math.floor() 对数字进行下舍入

    Math.pow(10,len)   len 位 0

    12 window对象 方法

      window.print() 用于打印当前窗口的内容

    window.innerWidth || document.documentElement.clientHeight || document.body.clientHeigtht

    window.open()  window.close()  window.moveTo()  window.resize() 

    screen.availHeight   返回屏幕的高度

    history.back()  history.forward()

    13 弹框

    alert() 警告框

    confirm() 确认框 点 确认 返回 true ;取消 返回false

     prompt('ccc') 提示框   点确认返回输入内容;点取消 返回null

    14 document.execCommand() 方法处理html数据时常用语法格式  ,execCommand()可以实现浏览器的很多功能,如保存文件、打开新文件、撤销

     document.execCommand('2D-Position','false','true'); sCommand为指令参数 如2D-Position ,交互方式参数如果是true则显示对话窗口,为false则不显示对话窗口;动态参数一般为 可用值或属性值 

    [全选]document.execCommand("selectAll")

    [打开] document.execCommand("open")

    [另存为]document.execCommand("saveAs")

    [打印] document.execCommand("print")

    15 事件处理程序

    1.HTML事件处理程序

    2.dom 0级事件处理程序  (直接在js里操作dom元素,添加或取消事件)

    "btn".onclick=function(){};
    "btn".onclick=null;

    3.dom2级事件处理程序  (指定或删除事件处理程序)

    btn1.addEventListener("click",function(){},false); false指异步
    btn1.removeEventListener("click",function(){},false)

    4.IE事件处理程序      只接受2个参数,因为IE8只支持事件冒泡

    btn1.attachEvent('onclick',function(){})
    btn1.detachEvent(‘onclick’,function(){})

    兼容个浏览器封装函数   

    var eventutil = {
    addEvent:function(element,type,handle){                                if(element.addEventListener){                                       element.addEventListener(type,handle,false)
     }else if(element.attachEvent){
           element.attachEvent('on'+type,handle)
     }else{element['on'+type]=handle},
    }
    //调用eventutil.addEvent(btn,click,handle) //handle 指function函数

    event事件对象

    属性:1. type属性 2.target属性  function(ev){alert(ev.type);alert(ev.target)}

    方法:1.stopPropagation()方法阻止事件冒泡;

       function(event){alert(xxxx);event.stopPropagation()};

          2.preventDefault()方法阻止默认行为;如<a>的跳转行为;

       function(event){event.stopPropagation();event.preventDefault();}

    严格模式 ‘use strict’   不能使用with()  不能使用关键字eval  argument    ;不能定义全局变量禁止使用八进制;

    闭包:定义在一个函数内部的函数,可以读取其他函数内部的变量;

        优点:1读取函数内部的变量

           2让变量的值始终保持在内存中

        缺点:1由于闭包会使函数中的变量都被保存在内存中,内存消耗很大,,会造成网页性能问题;

            解决方法:在退出函数之前将全局变量全部删除

           2闭包会在父函数内部,改变父函数外部的值

    http请求:1解析域名,查找本地host文件对应的IP,或向上查找,得到IP,开始构造http请求,服务器解析,返回客户端的浏览器,浏览器先判断状态码,如果是200,则进行渲染,300则去响应头里找location域,构建dom树,

    操作DOM

    查找:document.querySelector('#foo > div.bar')

    读取元素节点:myElement.children

            myElement.firstElementChild

            myElement.lastElementChild

            myElement.previousElementSibling

            myElement.nextElementSiblings

    读取任何节点(包括文本节点、元素节点):

            myElement.childNodes

            myElement.firstChild

            myElement.lastChild

            myElement.previousSibling

            myElement.nextSibling

            myElement.parentNode

            myElement.parentElement

    检查节点类型:myElement.firstChild.nodeType === 3  文本节点

    修改class 和 属性:myElement.classList.add('foo')   添加class

              myElement.classList.remove('bar')  删除

    直接修改 元素的HTML属性:会导致浏览器重新渲染,no   .getAttribute()     .setAttribute()     .removeAttribute()

    添加样式:myElement.style.marginLeft = '2rem'

    拿到计算后的元素属性:window.getComputedStyle(myElement).getPropertyValue('margin-left) 

    修改DOM : element1.appendChild(element2)

    插入DOM :parentElement1.insertBefore(newElement2,siblingElement3)  //插入一个节点

    克隆DOM : myElement.cloneNode()   //若传true,表示深度拷贝 所有子元素

    创建新的元素节点:document.createElement('div')

    创建文本节点:document.createTextNode('some text')

    删除一个元素:myParentElement.removeChild(myElement)

            myElement.parentNode.removeChild(myElement)

    元素属性:.innerHTML   .innerText  缺点:会丢掉之前对元素属性做的修改和时间坚挺,除非服务器端渲染。

    cookie:(应用记住密码)

    是存储在客户端的字符串属性,可对当前网页的cookie进行读写增删操作;

    setCookie(name,value,expdays)    expdays设为7,生存期属性,默认情况下,cookie只在浏览器会话期存在,退出浏览器就会丢失,可以用expires设置时间;退出浏览器后就不会丢失并存为客户端浏览器的cookie文件;过了时间后cookie失效,还会自动删除cookie文件.

    getCookie(name)

    delCookie(name)

    Object中修改自身的一个属性 ,获取自身的属性

  • 相关阅读:
    三、Python基础(5)
    三、Python基础(4)
    三、Python基础(3)
    三、Python基础(2)
    mysql 索引的使用
    Java 泛型T
    vueJS
    集群 分布式 负载均衡的区别
    nodeJS vue elementUI mock学习过程笔记,仅用于个人记录巩固
    MAP
  • 原文地址:https://www.cnblogs.com/yxiaoqian/p/5647732.html
Copyright © 2011-2022 走看看