文章目录
-
- 一、作用域和值类型引用类型的传递
- 二、封装函数将字符串进行驼峰命名
- 三、冒泡排序
- 四、反转数组
- 五、去掉数组中重复性的数据
- 六、物理像素
- 七、元素水平垂直居中
- 八、css实现三角形
- 九、实现移动端rem适配
- 十、背景图片的距离
- 十一、js综合面试题
- 十二、函数节流和防抖
- 十三、跨域
- 十四、nodejs的事件轮询机制
- 十五、从一个url地址到最终页面渲染完成,发生了什么?
- 十六、闭包
- 十七、变量提升(预处理)和执行上下文
- 十八、宏任务和微任务
- 十九、小程序快速入门
- 二十、比较 React 和 Vue
- 二十一、Redux管理状态的机制
- 二十二、Vue组件间通信方式
- 二十三、Vuex管理状态的机制
- 二十四、Vue的MVVM实现原理
一、作用域和值类型引用类型的传递
题1:作用域
var num1 = 55;
var num2 = 66;//100
function f1(num, num1) {
// var num =55;
// var num1 = 66;
num = 100;//100
num1 = 100;//100
num2 = 100;//100
console.log(num);//100
console.log(num1);//100
console.log(num2);//100
}
// 55 66
f1(num1, num2);
console.log(num1);//55
console.log(num2);//100
console.log(num);// 报错
题2:值类型和引用类型的传递
function Person(name, age, salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
function f1(person) {
//var person = p;
person.name = "ls";
person = new Person("aa", 18, 10);
}
var p = new Person("zs", 18, 1000);
console.log(p.name);//zs
f1(p);
console.log(p.name);//ls
二、封装函数将字符串进行驼峰命名
例如:已知有字符串foo=‘get-element-by-id’,写一个function将其转化成驼峰表示法”getElementById”
//自定义函数
function toString(foo) {
//var foo = 'get-element-by-id';
//根据某个字符进行切割
var arr = foo.split('-');
//获取每个元素中的第一个字符并转换成大写
// console.log(arr[1].charAt(0).toUpperCase() + arr[1].substr(1, arr[1].length - 1));
for(var i = 1; i < arr.length; i++) {
arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length - 1)
}
//根据某个字符将数组转成字符串
return arr.join('');
}
console.log(toString('get-element-by-id'));
三、冒泡排序
var arr = [32,4,67,82,21,11];
///轮数
for(var i = 0; i<arr.length-1;i++){
//次数
for(var j = 0;j<arr.length-1-i;j++){
//判断前一个大于后一个数时进行交换
if(arr[j]>arr[j+1]){
//借助第三方变量交换两个变量的值
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
四、反转数组
var arr = [1,2,3,4,5,6,7,8];
for