js 相关

238 阅读4分钟

数据类型

js 中的数据类型总体来说分为两种,他们分别是:# 值类型 和 引用类型

基本类型||内置类型|| 值类型|

数值型(Number),字符类型(String),布尔值型(Boolean),null 和 underfined  symbol

引用类型(类)

函数,对象,数组等

解释:

值类型理解:变量之间的互相赋值,是指开辟一块新的内存空间,将变量值赋给新变量保存到新开辟的内存里面;之后两个变量的值变动互不影响

引用类型理解:变量之间的互相赋值,只是指针的交换,而并非将对象(普通对象,函数对象,数组对象)复制一份给新的变量,对象依然还是只有一个,只是多了一个指引~~;

引用类型(类):函数,对象,数组等

Symbol 是一种特殊的、不可变的数据类型,可以作为对象属性的标识符使用,表示独一无二的值。Symbol 对象是一个 symbol primitive data type 的隐式对象包装器。

//无参数
var s1 = Symbol();
var s2 = Symbol();
 
s1 === s2 // false
 
//有参数
 var s1 = Symbol('symbol');
 var s2 = Symbol('symbol');
 
 s1 === s2 //false

const first = "abc" + "def";
const second = "ab" + "cd" + "ef";
console.log(first === second); // true

类型判断

Object.prototype.toString.call(——)

Object.prototype.toString.call([])   // "[object Array]"
Object.prototype.toString.call({})   // '[object Object]'
Object.prototype.toString.call(null) // "[object Null]"
Object.prototype.toString.call(undefined) // "[object Undefined]"
Object.prototype.toString.call('') //"[object String]"
Object.prototype.toString.call(true) //"[object Boolean]"
Object.prototype.toString.call(1)    //"[object Number]"

typeof

typeof 1 // 'number'
typeof '1' // 'string'
typeof undefined // 'undefined'
typeof true // 'boolean'
typeof Symbol() // 'symbol'
typeof b // b 没有声明,但是还会显示 undefined
typeof [] // 'object'
typeof {} // 'object'
typeof console.log // 'function'
typeof null // 'object'

Math.ceil(0.1) 向上取整 // 1 Math.floor(0.1) // 0 Math.random() // 0-1之间

得到一个大于等于0,小于1之间的随机数

function getRandom() {
  return Math.random();
}

得到一个两数之间的随机数

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min; 
}

得到一个两数之间的随机整数

这个例子返回了一个在指定值之间的随机整数。这个值不小于 min (如果 min 不是整数,则不小于 min 的向上取整数),且小于(不等于)max。

 function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min; //不含最大值,含最小值
}

得到一个两数之间的随机整数,包括两个数在内

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值 
}

#使用JS在页面上循环输出1-100的奇数

function getOddNumber(){
     for(var i=0; i<length; i++){
         if(i%2==1){
              document.write(i);
        }
    }
}

编写js函数,用于计算a+(a-1)+(a-2)+….+1的和

方法一:
function sum1(a){
	var sum = a;
	for(var i=a; i >= 1; i--){
		sum += (i-1);
	}
	return sum;
}
alert(sum1(3));
方法二:
function sum2(a){
  if(a==1){
	return 1;
  }else{
	return a + sum2(a-1);
  }
}
alert( sum2(3) );

描述parent()、parents()与closest()方法的区别,find()与filter()方法的区别

parent(): 查找父元素
parents():查找祖先元素
closest(): 从自身开始查找祖先元素,找到即刻返回
find():查找后代元素
filter():筛选集合中的元素

用js实现随即选取10--100之间的10个数字,存入一个数组。(20分)

function select(start,end){
var o=end-start+1;
return  Math.floor(Math.randow()*o+start);}
var arr=new array();
for(var i=0;i<10;i++){
arr.push(select(10,100));
}
alert(arr);

请实现,鼠标点击页面中的任意标签,alert请标签的名称(注意兼容性)

document.onclick = function(evt){
 var e = window.event || evt;
 var tag = e["target"] || e["srcElement"];
 alert(tag.tagName);
};

时间

let date = new Date() let len=date.getDate() // 11号 len+任意天数 let maxDate=len+5 // 1568562675222 // 获取5天后的时间 new Date(maxDate)

正则删除空格

为字符串扩展删除左侧、右侧及左右两侧空格

1.消除字符串左边的空格

function leftTrim(str){ 
    return str.replace(/^\s*/,"");//^符号表示从开头即左边进行匹配 
} 

2.消除字符串右边的空格

function rightTrim(str){ 
    return str.replace(/\s*$/,""); 
} 

3.消除字符串两边的空格

function trim(str){ 
     return str.replace(/(^\s*)|(\s*$)/g,""); 
} 

alert("111"+trim(" aaa ")+"111");

实现给对象设置和获得属性

var a=document.getElementById("tet");

alert(a.getAttribute("title"));

a.setAttribute("name","cc");

alert(a.getAttribute("name"));

如何从外部读取局部变量?

function f1(){
	n=111;  //局部变量对fa可见
	function f2(){
		alert(n); //f2内部的局部变量,对f1 就是不可见的
	}//子对象会一级一级地向上寻找所有父对象的变量
	return f2;    //f1读取f2的内部变量  只要把F2作为返回值
}
var result=f1();
result(); // 999

2.简述闭包的概念。 闭包的概念:定义在一个函数内部的函数 3.简述闭包的用途。 闭包的用途:可以读取函数内部的变量,让这些变量的值始终保持在内存中 4.使用闭包注意的注意点。 造成内存遗漏 会影响浏览器的反应速度境地用户体验或造成浏览器无响应