笔记

本文涵盖了JavaScript的基础知识,包括去除文本空白字符的方法、获取浏览器URL查询参数的技巧、常用的字符串操作,如concat、indexOf等,以及DOM节点的创建、添加、删除、替换、插入和查找。此外,还探讨了this的应用、闭包的概念以及垃圾回收机制。最后,讲解了数组操作和jQuery中的$()函数的作用。
摘要由CSDN通过智能技术生成

1.去除文本空白字符

(1)正则表达式

str=str.replace(/\s*/g,"");//去除所有空白字符
str=str.replace(/^\s*|\s*$/g,"");

\s:匹配任何空白字符一次或多次

*:匹配前面子式0次或多次

+:匹配前面子式1次或多次

^:从开始位置匹配

$:从结束位置匹配

(2):trim():只能去除字符串的开始和结尾的空白字符

(3)&.trim();

2.如何获取浏览器URL中查询字符串的参数?

var href="http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23";
var array=href.split('?');
if(array[0]==href){
    console.log('无参数');
}
var arr=array[1].split('&');
var obj={};
for(var i=0;i<arr.length;i++){
    var arg=arr[i].split('=');
    obj[arg[0]]=arg[1];
}
console.log(obj);

3.js字符串操作

concat()--将两个或多个字符串文本组合起来,返回一个新的字符串

indexof()--返回字符串中指定字符第一次出现的索引,没有返回-1

lastindexof()--返回字符串中指定字符最后一次出现的索引,没有返回-1

charAt()--返回指定索引处的字符

match()--检查字符串是否匹配正则表达式,返回的是一个数组,数组第一项是匹配的结果

search()--检查字符串是否匹配正则表达式,返回的是匹配结果的索引

replace()--检查字符串是否匹配正则表达式,参数一是正则表达式,参数二是要替换的值

slice()--提取字符串,参数一是开始位置,参数二是结束位置

substring()--提取字符串,参数一是开始位置,参数二是结束位置

substr()--提取字符串,参数一是开始位置,参数二是长度

split()--将字符串转换为数组

toLowerCase()--将整个字符串转换为小写

toUpperCase()--将整个字符串转换为大写

4.怎么创建、添加、删除、替换、插入和查找节点?

1)创建节点

createElement();//创建元素

createTextNode();//创建文本节点

2)添加、删除、替换、插入

appendChild();

removeChild();

replaceChild();

insertBefore();

3)查找

getElementById();//通过元素id

getElementsByTagName();//通过标签名称

5.this的应用

1)函数模式:

function test(){
    console.log(this);//指向windows
}

2)方法模式

var obj={
    func:function(){
        console.log(this);//指向obj
        }
}    

3)构造函数模式

function Person(){
    console.log(this);//指向p1
}
var p1=new Person();

4)上下文模式

var number=[1,2,3,4];

console.log(Math.max.apply(this,number));//4
console.log(Math.max.call(this,1,2,3,4));//4

将函数上下文作用域变为this对象上下文作用域。

6.如何理解闭包?

闭包:有权访问另一个函数作用域中的变量的函数。当一个函数的返回值是另一个函数,返回的函数调用了父函数的内部变量,返回的函数在外部被执行,就产生闭包。

表现形式:使函数外部能都调动函数内部定义的变量

var count=10;//全局变量
function add(){
    var count=0;
    return function(){
           count+=1;
           console.log(count);
    }
}
var s=add();
add();//1
add();//2

函数的作用域:全局作用域和局部作用域

特点:函数内部可以读取函数外部的全局变量,在函数外部无法读取函数内部的局部变量;

滥用闭包:会造成内存泄漏:由于闭包会使函数中的变量被保存在内存中,闭包过多,就会导致内存消耗过大,所以不能滥用闭包,否则会导致网页的性能问题。解决方法:在推出函数之前,将不使用的局部变量全部删除。

7.垃圾回收机制和内存管理?

定义:garbage collection(GC),执行环境负责管理代码执行过程中使用的内存

原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放内存。但是这个过程不是实时的,因为开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行。

垃圾回收策略:标记清除和引用计数

8.面向对象中继承实现?

面向对象的基本特征:封闭、继承、多态

9.判断一个字符串出现次数最多的字符?并统计次数

var str='asdfssaaasasasasaa';
var json={};
for(var i=0;i<str.length;i++){
    if(!json[str.charAt(i)]){
        json[str.charAt(i)]=1;
    }else{
        json[str.charAt(i)]++;
    }
}
var Imax=0;
var Iindex=0;
for(var i in json){
    if(json[i]>Imax){
        Imax=json[i];
        Iindex=i;
    }
}
console.log('出现次数最多的是:'+Iindex+'出现'+Imax);

9.Array相关操作

concat()--连接两个或更多的数组,并返回新的数组

join()--将数组的所有元素转换为字符串,并通过指定分隔符分来

toString()--把数组转换为字符串,并返回结果

toLocaleString()--把数组转换为字符串,并返回结果

valueOf()--返回数组对象的原始值

push()--向数组末尾添加元素,并返回新的数组长度

pop()--删除并返回数组的最后一个元素

unshift()--向数组来头添加元素,并返回新的数组长度

shift()--删除并返回数组的第一个元素

reverse()--颠倒数组中元素的顺序

sort()--对数组进行排序,按传入函数

slice()--提取元素,参数1是开始位置,参数2是结束位置

splice()--删除、添加、替换

迭代方法:

every()--对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

some()--对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

filter()--对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。

map()--对数组中的每一项运行给定函数,返回函数每次调用结果组成的数组。

forEach()--对数组中的每一项运行给定函数,无返回值。

arr.filter(function(item,index,array){
    return item>2;
})

10.数组中元素去重

方法一:

var arr=[1,2,2,3,4,3,3,5,6];
var obj={};
var arr1=[];
for(var i=0;i<arr.length;i++){
    if(!obj[arr[i]]){
        obj[arr[i]]=1;
        arr1.push(arr[i]);
    }
}

方法二:

var arr=[1,2,4,3,4,3,4];
var arr2=[];
for(var i=0;i<arr.length;i++){
    if(arr2.indexOf(arr[i])<0){
        arr2.push(arr[i])
    }
}

方法三:

var arr=[1,2,2,2,3,4,3,4];
var arr3.filter(function(item,index,self){
    return self.indexOf(item)==index;
})

11.jQuery库中的$()是什么?

$()函数是jquery()函数的简写形式。$()函数用于将任何对象包裹成jquery()对象,接着你就被允许调用定义在jquery对象上的多个不同方法

$(this)和this关键字在jquery中的不同?

$(this)返回一个jquery对象,你可以调用jquery方法,比如text()获取文本,val()获取值;而this代表当前元素,他是javascript关键词中的一个,表示上下文中的当前DOM元素。

12.window.onload和$(document).ready()的区别?

执行时机:window.onload()必须等待所有内容加载完毕之后才能执行(包括所有图片);

                 $(document).ready()网页中所有DOM结构绘制完毕后就执行,可能DOM元素想关联的东西还没加载完

编写个数:window.onload()不能同时编写多个

                $(document).ready()能同时编写多个

简化写法:window.onload()没有简化

                   $(document).read()可以简化为$(function(){})

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值