数据类型
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.使用闭包注意的注意点。 造成内存遗漏 会影响浏览器的反应速度境地用户体验或造成浏览器无响应