• 补充js


    function Person () { 构造函数里的this 为新建的对象 per} 
    var per = new Person();    //对象 
    console.log(per);                 // object 构造函数 必须有newvar per = Person();
    console.log(per);                 // undefined 函数
    使用统一构造函数创建的对象,我们称为一类对象,也将构造函数称为一个类(Person类)

    所有对象都是object的后代,任何对象和object做instanceof检查时都会返回true

    console.los(per instenceof Object) //true

    this的情况:

    1.当以函数的形式调用时,this指向的是window

    2.当以方法的形式调用时,谁调用方法this就指向谁

    3.当以构造函数形式调用时,this就是新创建的那个对象

    原型对象:prototype  当我们访问对象的一个属性时,它会先在自身中寻找,如果有则直接使用,如果没有则会去原型对象中寻找,如果找到则直接使用  以后我们创建构造函数时,可以将我们这些对象共有的属性和方法,统一添加到构造函数的原型对象中

    Person.prototype.sayName = function () {alert('大家好,我是'+this.name) }      //这样既不重复调用又不污染window的命名空间
    Person.hasOwnProperty(" ") //检查对象自身中是否有这个属性

    原型对象也是对象,所以他也有原型,当我们使用一个对象的属性或方法时,会先在自身中查找,如果自身中有,则直接使用,如果自身中没有则去原型对象中寻找,如果原型对象中有,则使用,如果原型对象中没有,则去原型的原型中寻找(算到头了) console.log(Person.__proto__.__proto__.hasOwnProperty("hasOwnProperty")) 

    数组

    //使用构造函数创建一个数组
    var arr = new Array();
    //使用字面量创建数组
    var arr = [];
    //创建一个数组数组中只有一个元素10
    arr = [10];
    //创建一个长度为10的数组
    arr2 = new Array(10)

     forEach()方法需要一个函数作为参数 像这种函数,由我们创建但是不是由我们调用的,我们称为回调函数;浏览器会在回调函数中传递三个参数,第一个参数为:当前正在遍历的元素;第二个参数为:当前正在遍历元素的索引;第三个参数:就是正在遍历的数组 

    arr.forEach(function(value,index,obj) {} );`

    slice

    //slice(start,end)方法可从数组中提取指定元素,该方法不会改变数组元素,而是将截取到的元素封装到一个新数组中返回;
    arr.slice(start,end) 包括start 不包括end

    splice可以用于删除数组中的指定元素

    //splice会影响原数组,会将指定元素从原数组中删除;并将删除元素作为返回值返回
    arr.splice(start,删除的数量,"替换元素;自动插入start的前面");

    数组的剩余方法

    arr1.concat(arr2,arr3,"元素")                //连接两个或多个数组,对原数组没有影响
    join("-")    //将数组转换为字符串;对原数组没有影响;-为连接符
    reverse()    //翻转数组;会直接修改原数组
    sort()      //对原数组进行排序;会影响原数组;默认按照Unicode编码进行排序

     函数的方法:call()和apply()  //可以知道this的指向,(对象)里参数是谁,this就指向谁   call方法可以将实参在对象之后依次传递fun.call(obj,实参)  apply需要将                     实参封装在数组里apply(obj,[实参])

     DATA对象

    var d = new Data();          //当前代码执行的时间
    //创建一个指定的时间  月/日/年 时:分:秒
    var d2 = new Data("12/03/2020 11:10:30")
    d2.getData()    //获取当前对象是几日
    d2.getDay()  //当前日期是周几 0表示周日
    d2.getMonth()  //获取当前月份  从0开始表示一月
    d2.getFullYear()   //获取当前日期的年份
    d2.getHours()        //小时
    d2.getMinutes()       //分钟
    d2.getSeconds()        //
    d2.getMilliseconds()     //毫秒
    d2.getTime()        //获取当前时间 的时间戳 从1970.1.1 00:00:00到当前时间的毫秒数
    //获取当前的时间戳
    time = Data.now();        

    MATH对象

    Math.abs()        //返回一个数的绝对值
    Math.ceil()        //对数进行上舍入(向上取整)
    Math.floor()        //向下取整
    Math.round()        //对一个数进行四舍五入
    Math.random()        //可以用来生成一个0-1的随机数(没有0和1)
    Math.round(Math.random()*(y-x)+x)    //生成一个x-y的随机数

    包装类

     String() 可以将基本数据类型转换为String对象

     Number() 可以将基本数据类型转换为Number对象

     Boolean() 可以将基本数据类型的布尔值转换为Boolean对象

    String的方法

    string.charAt()          //获取指定位置的字符
    string.charCodeAt         //获取指定位置字符的字符编码(Unicode)
    string.formCharCode()        //根据字符编码获取字符
    string.indexOf("字符",开始查找的位置数字)                //检索字符第一次出现所在的位置
    string.LastIndexOf("字符",开始查找的位置数字)                //检索字符最后一次出现所在的位置
    string.split(",")          //通过,来拆分数组
    以上方法都不会影响原字符串

    正则表达式 

    //创建正则表达式
    var reg = new RegExp("正则表达式","匹配模式")    匹配模式:i 忽略大小写; g 全局匹配模式
    //使用构造函数来创建正则表达式
    var
    reg = new RegExp("a","i"); var str = "a"; var result = reg.test(str); console.log(reg.test("abc")) //true //使用这个字符串可以来检查一个字符串是否含有a
    //使用字面量来创建正则表达式
    var 变量 = /正则表达式/匹配模式/     //a或b  a|b、[ab]  a或b或c [a-c]  
    //检查一个字符串是否有 abc或adc或aec reg=/a[bde]c/
    //[^ ]除了 [^ab]除了ab

    join将数组整合为字符串,split()将字符串拆分为数组

    var result = str.split(/[A-z]/);       //将字符串按照任意字母进行拆分
    //search()   可以搜索字符串中是否含有指定内容 若有则返回第一次出现的索引 没有则返回-1  可以接受一个正则表达式,然后根据正则表达式去检索字符
    var str = "字符串"
    result = str.search(/a[bef]c/) ;   //不能全局匹配   
    //match()  可以根据正则表达式,从一个字符串将符合条件的内容提取出来    一般情况下match只会找到第一个符合要求的内容,找到以后就停止检索,
    我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有内容
    result = str.match(/[a-z]/ig)
    //可以为一个正则匹配多个表达式且顺序无所谓,保存到数组里

     正则表达式语法

    var reg = /a{n}/       //a连续出现n次
    var reg = /(ab){n}/       //ab连续出现n次
    {m,n}                            //m~n次
    {m,}                              //m次以上

     DOM对象

      文档的加载

     DOM查询

    //删除节点
    子节点.parentNode.removeChild(子节点);

         浏览器会在表单元素中自己添加tbody,添加表单时需要添加在tbody里面

     内联样式style:通过js修改的css样式优先级别很高,所以通过js修改的样式往往会立即显示,!important除外(最高优先级)

    //修改CSS元素
    元素.style.样式名 = 样式值 //在响应函数中修改DOM
    //css中的background-color在js中是不合理的,需要将样式名修改成驼峰命名法(backgroundColor)

    //读取样式 通过style读取的样式都为内联样式,无法读取样式表中的样式

    //该方法会返回一个对象,对象中封装了当前元素对应的样式
    alert(ogj.width)

    找不到变量会报错,找不到属性值返回undefined

     

    检查滚动条是否滚到底了

     事件对象event,在ie8以下不能获取,ie8以下event作为window对象的属性保存  可以用  event=event||window.event 来进行赋值  event.cancellbubble = true //取消冒泡 

     BOM对象:浏览器对象模型

     History对象:可以操作浏览器向前向后翻页

    Location对象:封装了浏览器地址栏的信息,Location对象的属性是将地址栏信息分开

    定时器

    var timer = setInterval(function(){},1000);               //每隔1000ms调用一次function函数,返回值为number类型的数据
    clearInterval(timer)          //用来关闭一个叫timer的定时器,写在判断语句里面
    var timer = setTimerout(function(){},1000)        //定时调用
    clearTimerout(timer) 
     

    JSON

    JSON分类:1.对象{ }  2.数组 [ ]

    JSON中允许的值:字符串 数字 布尔值 null 对象 数组

    将JSON字符串转换为JS对象 JSON.parse() ,将JS对象转换为JSON字符串 JSON.stringify() '

  • 相关阅读:
    汇编随笔(第一章 基础知识)
    排序集锦(rough)
    如何让编写的Java代码规范整洁
    二分法查询数据java实现
    归并排序的学习与java实现
    小白的软件测试之路
    PyInstaller打包python脚本
    数据库SQL优化总结
    JQuery选择器
    软件测试面试题
  • 原文地址:https://www.cnblogs.com/zyq982796687/p/14672308.html
Copyright © 2020-2023  润新知