js零散知识点
随机数:
1.Math.random(); 结果为0-1间的一个随机数(包括0,不包括1)
2.Math.floor(Math.random()*10); 获取0-9之间的随机数
3.Math.floor(小数);取整的,返回小于等于“小数”的整数。
4.Math.ceil(小数);取整的,返回大于等于“小数”的整数。
5.Math.ceil(Math.random()*10);获取的是1-10之间的数也包括0,但是出现0 的几率很低
---------------------------------------------------------------------------------------------------------------------------------
1,简单两个meta标签的作用:
<metaname="Keywords" content="搜索的关键字">
<metaname="Description" content="你的网页的描述">
Jquery获取节点的一些简单封装:
function getById(id){
returndocument.getElementById(id);
}
var $ = getById('box');
console.log($)(高程3)
//className选择器的封装:
getElementsByClassName--------------h5里面新增的选择器,ie8以下不兼容。
//复习拓展:
=== 不会发生类型的转换,直接比较值,性能会更高。
== 先进行数据的转换,比较值是否相等
= 简单赋值。
· 对于 string、number 等基础类型,== 和 === 是有区别的
· 不同类型间比较,== 之比较 "转化成同一类型后的值" 看 "值" 是否相等,=== 如果类型不同,其结果就是不等。
· b)同类型比较,直接进行 "值" 比较,两者结果一样。
、基础类型与高级类型,== 和 === 是有区别的
· a)对于 ==,将高级转化为基础类型,进行 "值" 比较
· b)因为类型不同,=== 结果为 false
4、!= 为 == 的非运算,!== 为 === 的非运算
123e5 12300000 (e/后面可添加对应的数字并且填充0)
对代码进行折行 \ eg:document.write(“你好\世界!”) document.write\(你好世界!)
match() 匹配里面的字符 eg:element.src.match(“imgs”) 怎么样----
innerHTML 会打印出元素文本 ` <div id=”box”>好<span>为啥子</span>厉害</div> box.innerHTML 会包括标签都打印出来好<span>为啥子</span>厉害
JavaScript 变量的生存期
JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
数组去重(面向对象的封装);
Array.prototype.unique1 = function(){
var res =[this[0]];
for(var i =1; i < this.length; i++){
varrepeat = false;
for(varj = 0; j < res.length; j++){
if(this[i]== res[j]){
repeat= true;
break;
}
}
if(!repeat){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique1());
第二种方法:
Array.prototype.unique2 = function(){
this.sort(); //先排序
var res = [this[0]];
for(var i = 1; i < this.length; i++){
if(this[i] !== res[res.length - 1]){
res.push(this[i]);
}
}
return res;
}
var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
alert(arr.unique2());
第三种方法:
Array.prototype.unique3 = function(){
var res = [];
var json = {};
for(var i = 0; i < this.length; i++){
if(!json[this[i]]){
res.push(this[i]);
json[this[i]] = 1;
}
}
return res;
}
var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());
js作用域问题:
变量的申明问题:
a =10;
在js中的执行其实就是: vara= undefined; a = 10;
for(varI = 0;i<10;i++){}console.log(i)---------------10
(function(){
For(var i=0;i<10;i++){}
})()
Console.log(i)--------------------------(相当于创建了一个局部作用域)外面就会-报错
For(let I =0;i<10;i++){}console.log(i)-------------------let申明的变量就相当一个块级作用域,在外面打印就会报错
变量提升:
Functiona(){
Console.log(f);
Var b = 10;
}
// var 的情况
console.log(foo); // 输出undefined
var foo =2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar =2;//----
functionf1(){
let n =5;
if(true){
let n =10;
}
console
.log(n
); // 5
}
Const申明的变量就是一个只读的常量,不能改变这个值。如果一旦改变了这个值就会报错
const PI =3.1415;
PI // 3.1415
PI =3;
Const如果只申明不赋值,会报错
const num;
// SyntaxError: Missing initializer in const declaration
还有一种就是const之前调用会报错
if(true){
console.log(MAX); // ReferenceError ;
const MAX =5;
}
Js中的this指向问题巩固;
function fn(){
var a = 12;
console.log(this.a) //这里会是undefined,因为在js中有函数作用域,然而,在此函数中,a的申明是用war申明的,所以他在这个函数中是一个局部变量(私有变量),this的指向是指向调用他的对象,那就是window,所以在window下面没有a,会是undefined。
this的指向在函数创建的时候是决定不了的,在调用的时候才能决定,谁调用的就指向谁,一定要搞清楚这个。}
可能有些凌乱,抽空整理一下,不过希望大家,多提里面错误或者描述不正确的问题。
*软件:
红杏、
www.shenduvpn.com备用网站:www.shenduvpn.cn
国外网站:Youtube Facebook Tiwtter Google等