这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

1.使用js,在页面中打印以下图案

提示:

document.write可以在页面中打印内容
<br>在html中代表换行, 在html中代码空格

for(var i=0;i<7;i++){
// 空格部分
for(var j=7;j>i;j--){
document.write(" ");
}
// *号区域1,正常排列,但被空格部分挤往右边,就会看着是往右靠了
for(var j=0;j<=i;j++){
document.write("*");
}
// *号区域2
for(var j=0;j<=i+1;j++){
document.write("*");
}
// 换行
document.write("<br>");
}

2.有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,第四个里面放8,棋盘上放的所有芝麻的重量

提示:使用循环第一层for循环控制方格,第二层for循环控制方格里面放的芝麻数量

var sum = 0;
for(var i=0;i<64;i++){
var a = 1;//每当下面的for执行结束,sum加完之后重置a变量
for(var j=0;j<i;j++){
a = a * 2;
}
// console.log(a);
sum += a;
}
console.log(sum * 0.00001);

3.编写函数,实现任意个任意数字的和

提示:输入值为数组,执行方法后要返回数组里面的所有数值的和

function add(arguments){
var sum=0;
for(var i=0;i<arguments.length;i++){
sum+=arguments[i];
}
return sum;
}
console.log(add([1,1,1,1,1]));

4.编写一个函数,计算两个数字的和/差/积/商 /余,要求:使用传参的方式

提示:使用switch分情况处理,输入类型和两个值后,方法要返回对应结果

function compute(n1, n2, sy) {
switch (sy) {
case "+": {
return console.log(n1 + n2);
}
case "-": {
return console.log(n1 - n2);
}
case "*": {
return console.log(n1 * n2);
}
case "/": {
return console.log(n1 / n2);
}
case "%": {
return console.log(n1 % n2);
}
default: {
alert("运算符输入错误");
}
}
}
compute(1, 2, "+");
compute(1, 2, "-");
compute(1, 2, "*");
compute(1, 2, "/");
compute(1, 2, "%");

5.编写一个函数,通过循环制造一个5 x 5的二维数组,这个数组中的数据是hello

提示:二维数组双层循环

var arr1 = new Array();
for (var i = 0; i < 5; i++) {
var arr2 = new Array();
for (var j = 0; j < 5; j++) {
arr2[j] = "hello";
}
arr1[i] = arr2;
}
console.log(arr1);

6.编写一个函数has(arr , n), 判断数组中是否存在n这个元素,返回布尔类型

提示:循环遍历+判断(注意返回值return会结束当前执行语句)

function has(arr, data) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === data) {
return true;
}//不能else然后return false,这样做的话会结束当前执行语句也就是结束循环语句
}
return false;
}
var arr = [0, 1, 2, 3, 60];
console.log(has(arr, 60));

7.编写一个函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组

提示:双循环遍历+判断

function norepeat(arr) {
var arrNew = new Array();
// 循环遍历原数组
for (var i = 0; i < arr.length; i++) {
// 判断原数组的数据在新数组中是否存在
if (!(has(arrNew, arr[i]))) {
// 最后新增数据放在新数组里
// arrNew.push(arr[i]);
arrNew[length++]=arr[i];
}
}
return arrNew;
}
var arr = [1, 1, 1, 2, 3, 3, 4];
console.log(arr);
console.log(norepeat(arr));

8.编写一个函数实现将参数一中的字符串内容中符合参数二数组的部分去除掉,实现敏感词过滤

提示:循环遍历+replace裁剪

(function () {
"use strict"
var worldsList = ["西巴", "啊啊", "坏人"];
var str = "真的西巴,不是啊啊啊,坏人一个西巴啊啊坏人";
console.log(str);
// 循环遍历这个字符中的所有数据
for (var i = 0; i < str.length; i++) {
// forEach遍历这个数组中的数据
worldsList.forEach(function (val) {
str = str.replace(val, "**");
})
}
console.log(str);
// 完整的敏感词过滤需要用到正则表达式来完善
// 见9.2正则
})();

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

记录--Js基础练习题目的更多相关文章

  1. 前端面试题目汇总摘录(JS 基础篇)

    JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string typeof null; // o ...

  2. 前端面试题目汇总摘录(JS 基础篇 —— 2018.11.02更新)

    温故而知新,保持空杯心态 JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string type ...

  3. js基础篇——call/apply、arguments、undefined/null

    a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 ...

  4. js基础进阶--关于setTimeout的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 先热身 看看下面的额代码会打印出什么? for (var i = 0; i < 5; i++) { setTimeout( ...

  5. JS基础学习1

    1 JS 概述 一个完整的javascript实现是由以下3个不同部分组成的: (1)     核心(ECMAscript) (2)     文档对象模型(DOM)  Document object ...

  6. js基础梳理-如何理解作用域和作用域链?

    本文重点是要梳理执行上下文的生命周期中的建立作用域链,在此之前,先回顾下关于作用域的一些知识. 1.什么是作用域(scope)? 在<JavaScritp高级程序设计>中并没有找到确切的关 ...

  7. 1、js基础内容

    js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...

  8. GSAP JS基础教程--TweenLite操作元素的相关属性

    今天来学习用TweenLite操作元素的各种属性,以Div为例,其他元素的操作也是一样的,只是可能一些元素有它们的特殊属性,就可能不同罢了.   代码里用详细注释,我就不再重复啦,大家看代码就可以啦! ...

  9. 前端工程师面试问题归纳(一、问答类html/css/js基础)

    一.参考资源 1.前端面试题及答案整理(一) 2.2017年前端面试题整理汇总100题 3.2018最新Web前端经典面试试题及答案 4.[javascript常见面试题]常见前端面试题及答案 5.W ...

  10. js基础心得

    最近有想法研究jQuery源码,一顿查阅顿感自己基础薄弱.手中正好有一本js高程,遂决定深入js基础,并记录心得至博客园.以待一举攻克jQuery,VUE等源码. 1,变量.作用域和内存问题 2,引用 ...

随机推荐

  1. NC51111 Atlantis

    题目链接 题目 题目描述 There are several ancient Greek texts that contain descriptions of the fabled island At ...

  2. Linux 中Yum命令使用方法

    Linux系统下常用yum安装命令详解   yum常用安装命令 使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的. 1.安装killall命令yum install -y psm ...

  3. OGP协议的使用

    OGP协议是一套Metatags的规格,用来标注页面,告诉我们你的网页快照.帮助社交app高效并准确的获取网页中的核心链接.标题.主图.正文摘要等信息,使得该网页在社交分享中有更好的展现体验. 如果网 ...

  4. CDN缓存的理解

    CDN缓存的理解 CDN即内容分发网络Content Delivery Network,CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时 ...

  5. Linux 下配置Oracle开机自动启动

    一./etc/oratab说明 直接使用cat 查看这个文件: gg1:/home/oracle> cat /etc/oratab # # This file is used by ORACLE ...

  6. 【Android逆向】apk 反编译

    1. Kali搭建apktool环境 1. 访问apktool 官网https://ibotpeaches.github.io/Apktool/install/ 参考红圈里的步骤处理即可 2. 执行命 ...

  7. Hi3516开发笔记(九):在QtCreator开发环境中引入海思sdk的bsp包,运行显示Qt界面

    前言   之前启动Qt界面程序失败了,是因为需要引入HiSDK的BSP中的HiMPP,并对HiMPP进行初始化设置.   在sdk中查询海思SDK头文件和库       在Qt中调用海思BSP   在 ...

  8. 进程,join的使用,守护进程---day30

    1.进程 # ### 进程 import os,time #当前进程id(子进程) res = os.getpid() print(res) #1772 #当前进程id(父进程) res = os.g ...

  9. ASP.NET Core MVC应用模型的构建[3]: Controller的收集

    从编程的角度来看,一个MVC应用是由一系列Controller类型构建而成的,所以对于一个代表应用模型的ApplicationModel对象来说,它的核心就是Controllers属性返回的一组Con ...

  10. 【Filament】材质系统

    1 前言 ​ 本文主要介绍 Filament 的材质系统,官方介绍详见 → Filament Materials Guide.材质系统中会涉及到一些空间和变换的知识点,可以参考:[Unity3D]空间 ...