二刀流的博客

对于编程,一定要刀刀见血,不能流俗!

JS精华记录(一)

一、JS 截取字符串

1.1  获取字符串位置


//字符串位置函数
function IndexDemo(str2){ 
    var str1 = "abcdd,dfffg" 
    var s = str1.indexOf(str2); 
    console.log('s-->',s);
    return(s); 
   } 


1.2  截取子字符串

function subStringF(){

	var str1 = "abcdd,dfffg";

    var dou = str1.indexOf(','); 
    ss = str1.substring(0,dou)

    console.log('ss-->',ss);
   
    return ss;
}

二、JS删除数组中的元素

2.1 借助splice

2.2 借助filter

function myFunction() {
	var aqiData = [
	["北京", 90],
	["上海", 50],
	["福州", 10],
	["广州", 50],
	["成都", 90],
	["西安", 100]
	];
    console.log(aqiData);
    
	var city="上海";

	var newData = aqiData.filter(function(item) {
	 return item[0] != city;
	});

	aqiData = newData;
	console.log(aqiData);

}
myFunction();
注:上述代码,可以删除元素上海所在的子数组,但这是借助子数组的元素值,下面给出借助数组的index,即第几个子数组。代码如下:

var aqiData = [
	["北京", 90],
	["上海", 50],
	["福州", 10],
	["广州", 50],
	["成都", 90],
	["西安", 100]
	];
var 
function isBigEnough(element, index, array) {
	console.log('element:',element);
	console.log('index:',index);
	console.log('array:',array);
    return (index >= 2);
}

var filtered = aqiData.filter(isBigEnough);
console.log(filtered);

注:上述代码输出时,会删除北京,上海所在的子数组(其index分别是0,1)。


三、js中onclick传参数及setTimeout传参数

3.1 向onclick中传参数

 $("#getCoursewareSuccess").append("<li  class='clearfix'><img src='/static/img/end_s.png' /><span>"+coursewareValue+"</span><a onclick=\"getDataUrlThumbnail('"+newFileNameValue+"','"+imgNumValue+"')\">拉取</a></li>");
注:参数要用“++”包起来,再再外面用‘’包起来。截图如下

3.2 向setTimeOut传递参数

setTimeout("getClasswarebyCycle('"+folderName+"','"+img_num+"')", 10);
注:同样也是参数要用“++”包起来,再再外面用‘’包起来。

四、JS小知识

4.1   void 0 

void 0 和undefined是一个意思,即:void 0 === undefined

4.2 !!

var a;
var b=!!a;

a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值。!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;

4.3 delete

delete 操作符用于删除对象的某个属性;如果没有指向这个属性的引用,那它最终会被释放。

var Employee = {
  firstname: "Mohammed",
  lastname: "Haddad"
}

console.log(Employee.firstname);
// expected output: "Mohammed"

delete Employee.firstname;

console.log(Employee.firstname);
// expected output: undefined

4.4 js日志比较好方法

    js中,常常会借助console.log打一些日志,按F12会调出来,如下:


但有时,需要对上述日志进行比较,比方说webrtc连接中,你不知道哪一次连接上了,连接上之前的几次连接中,连接参数有什么变化,这就涉及到比较连接的那几次各个参数的变化,但把这些日志复制到sublime中会发生换行,还要进行整理,如下:


但如果复制到word中就很整齐如下:

更神奇的是,两个word日志还能用Beyond Compare进行比较,如下:


所以,这比较起来就非常方便了。

小结:对于js中如果需要进行日志比较,可以把打的日志复制到word中,然后用Beyond Compare进行比较,就可以轻松找出日志间的不同。

4.5js中的try...catch函数

   try...catch函数,意思是:try先执行,如果try中报错,catch对错误进行处理,否则,不走catch语句。看个例子

1)try中语句不报错---不走catch 


运行结果如下:


注:因为try中没有错误出现,没有错误需要处理,没有捕获到异常,所以不走catch,接下来,我会故意把程序中var _enableLogs = true;写成var _enableLogs = true123;

2)try中语句报错---走catch 


运行结果如下:


注:因为try报错了,所以要走catch进行异常处理。

五、改变元素的值

5.1 改变<a>value</a>中的value

jquery方法一:$("#id").html('newValue');

jquery方法二:$("#id").text('newValue');

jquery方法三:$("#id").val('newValue');

原生写法方法四:document.getElementById("id").innerHTML='newValue';

5.2 向js数组中插入元素

1)向数组的头部插入一个元素

arr.unshift('value');

2)向数组的尾部插入一个元素

arr.push('value');

3)splice

 a.)向x处添加一个元素

arr.splice(x,0,'value');

 b.)将x处的元素替换掉

arr.splice(x,1,'value');

 c.)从x处往后(包括x)删除3个元素,并插入一个新值

arr.splice(x,3,‘value’);

看个例子:


注:表示从x位置,向后删除y个元素

4)获取数组的某些元素

arr.slice(x,y,arr);

注:表示获取数组中从x位置,到y位置的元素(包括x,不包括y所指的元素),看个例子如下:








JS精华记录,本文持续更新。。。。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SanBaDao/article/details/70766881
个人分类: JS
想对作者说点什么? 我来说一句

JS学习总结

2013年01月03日 10KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭