目录
一、反转字符串,将字符串str = 'i love china' 反转为china love i
二、组合数 1,2,3,4组合个位、十位、百位各不相同的三位数
三、求1-1000完美数,一个数本身等于它的因子之和 6 = 1 + 2 + 3
前言
JavaScript是一门函数优先、需要解析器解析执行具有原型编程的一门动态编程语言,需要在浏览器或者node.js的运行环境下解析执行
特点:1.需要解析器解析执行
2.弱类型语言 (可以重复声明)
3.从上到下按照代码解析顺序执行
4.大小写敏感 区别于HTML和css:大小写不敏感
数据类型分为:
1.基本数据类型(简单数据类型)
string number boolean null undefined symbol bigint
2.引用数据类型(复杂数据类型)
Object
数组 函数
两种数据类型有何区别?
1.基本数据类型的变量和值都是存在栈区的,互不影响的
2.引用数据类型的变量和引用地址是存在栈区的,内容存在堆区
一、反转字符串,将字符串str = 'i love china' 反转为china love i
思路:使用split方法将字符串转为数组,从后向前循环遍历数组,用一个空数组进行接收。
//定义一个字符串 “i love china”
var str = 'i love china';
// 将字符串转为数组 split(' ')
var res = str.split(" ");//['i','love','china']
//声明一个空字符串
var result = '';
//从后向前循环遍历数组中的每一个数组元素
for (var i = res.length - 1; i >= 0; i--) {
//将循环遍历出的数组元素以字符串形式进行拼接
result += res[i] + ' '
}
//此时打印的结果为成功反转的 china love i
console.log(result)
二、组合数 1,2,3,4组合个位、十位、百位各不相同的三位数
思路:使用三个for循环遍历个位、十位、百位,并且使用if条件判断三个数字互不相等,此时声明一个变量来接收三位数(百位×100+十位×10+个位)。
//遍历个位数为1-4
for (var i = 1; i <= 4; i++) {
//定义一个变量z为这个三位数
var z;
//遍历十位数为1-4
for (var a = 1; a <= 4; a++){
//遍历百位数为1-4
for ( var b = 1; b <= 4; b++){
//当个位数不等于十位数,十位数不等于百位数,个位数不等于百位数时
if (i != a && a != b && i != b){
//百位数×100 + 十位数×10 +个位数 = 此时的三位数
z = b * 100 + a * 10 + i;
//此时打印出来的三位数为个、十、百位各不相同的三位数
console.log(z);
}
}
}
}
三、求1-1000完美数,一个数本身等于它的因子之和 6 = 1 + 2 + 3
思路:第一层for循环处理完美数本身(在1-1000之间),声明一个初始值为0的变量求因子之和,第二层for循环处理因子,使用if条件判断,当因子可以被整除时相加,求出因子之和,再判断因子之和是否等于完美数本身,相等时输出的值为1-1000之间的完美数。
//遍历被除数在1-1000之间
for (var i = 1; i <= 1000; i++) {
//定义一个h变量为因子之和 初始值为0
var h = 0;
//遍历除数在1-这个被除数之间且不为被除数
for (var a = 1; a < i; a++) {
//当除数可以被被除数整除 并且除数不等于被除数时
if (i % a == 0 && i != a) {
//h=h+a 此时被除数的因子之和
h += a;
}
}
//当这个数等于它的因子之和时
if (i == h) {
//打印出来的数就是1-1000的完美数
console.log(i);
}
}