前端基础一些问题

  1. js中为什么需要数据类型?
    在计算机中不同的数据占用存储空间是不同的,为了充分利用空间。

  2. 打印五行五列星星?

var str = ‘’;
for (var i = ;i <= 5; i++){
      	for(var j = 1 ;  j < =5;j++){
		str = str + 'x'
		}
		//如果另起一行就要在一行打印完毕之后加上 、\n,转义符只有在字符串中才起作用
		str = str + '\n'   

打印倒三角把 j = 1 改成 j = i ,
打印正三角乘法口诀 把 j < 5;j <= i ;

  1. 数组冒泡排序,,类似打印倒三角,外层for只是代表要走几行才可以排序完成,里面的for代表各个元素交换的次数,当然也可以用更为简单的arr。sort();
var arr = [5,3,4,1,2]
for (var i = 0 ; i <= arr.length-1;i++){
	for (var j = 0 ; j <= arr.length - i -1; j++){
		if( arr[j] > arr[j + 1 ] ) { //这里的J才是代表数组里面的元素,代表数组里面的索引号,然后用前一个和后一个比较,
			var temp = arr[j];        //这里则代表a于b交换双方的值要添加第三个元素
			arr[j] = arr[j + 1];
			arr[j + 1 ] = temp;
			}
	}
}
console.log(arr)

查找字符串“abocjocdfogogeopp”中所有o出现的位置以及次数?
核心算法:先找出第一个o的位置,再利用indexOf值为-1(剩下没有了)的特性进行继续查找判断,注意查找后索引要+1

var str = “abocjocdfogogeopp”;
var num = 0 ;
var index =str. indexOf(‘o’);//先查找第一个然后赋值给一个变量,这里的变量也等于这个o,
while(index!==-1){ console.log(index);num++ ; index = str.indexOf(‘o’,index+1)//}

5.判断一个字符串“abocjocdfogogeopp”中出现最多的字符,并统计其次数。
核心:利用chartAt()遍历每个字符
把每个字符都存储给对象,有该属性为1,存在了就+1;
遍历对象,得到最大值和次数。

var str = “abocjocdfogogeopp”;
var o = {};
for (var i = 0 ; i <=str.length; i++){
	var   chars    =str.charAt(i);  //chars为字符串里面的每一个字符
		if(o[chars]){  
		o[chars]++;
		}else {
				o[chars]=1;
				}}
``
第二步:遍历对象
var max = 0;
for(var k in o){ 、、k得到的是属性名,o[k]得到的是属性值
	if(o[k] > max){
	max = o[k];
	}
}

 1. 作用域,
 

var num1 = 20;
var num2 = 30;
function f1(num,num1){ //形参相当于在函数内部声明了一个变量
//var num = 20;
//var num1=30;//注意这里声明一个函数内部变量
num = 100;
num1=100;
num2 = 100; //这里num2为全局变量
console.log(num) //100
console.log(num1) //100
console.log(num2) //100
}
f1(num1 ,num2);
console.log(num1) //20,这里为什么为20因为外部不能访问内部变量
console.log(num2) //100
console.log(num) //报错


 1. 值类型,引用类型

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); //代表又给变量person重新赋值了一个对象,此时person的地址和p的地址指向不同的对象。
}
var p = new Person(‘zx’,18,1000);
console.log(p.name); // zx
f1§;
console.log(p.name); //ls


 1. 封装函数进行字符串驼峰命名转换
 

//自定义函数
function toString(foo){
var foo = ‘get-element-by-id’;
//根据 某个字符进行切割
var arr = foo.split(’-’);//把字符串转换为数组

console.log(arr[i].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'));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值