今天继续复习了js基础语法  最后一天了 学完了进入dom bom的复习 今天发现了很多经典案例 我都不知道一个随笔放的完不 逻辑性感觉还是蛮强的 主要就是作用域 对象 内置对象等一些的操作嘛 话不多说直接上代码 都在代码里了哈哈

首先是一个关于预解析的问题 感觉在这里有点小坑 以后要注意了

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 请描述下面代码的输出结果以及运行原因
var num = 1;
function demo(){
console.log(num);
function demoSon(){
console.log(num);
num = 3;
console.log(num);}
var num = 2
demoSon();}
demo(); // 很明显这是一个关于预解析的问题 就是会把变量声明和函数声明提升到当前作用域的最前面 那么全局作用域下声明了一个num 函数也声明了 在看函数里面的
// 注意!!! 这里第一步我就错了 我以为会打印1出来 局部作用域下先是打印num值 这里遵循一个作用域链的原则一级一级往上查找 找最近的一个找到过后
// 无论是否有值那都是他了 所以这里有个变量提升 提上来后未赋值 所以第一个num打印出来是undefined 后面继续遵循原则 依次打印出 2 3
</script>
</body>
</html>

然后是一个函数内置对象混用的问题 遇到的第一个有点挑战性的题

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 函数名:getResult​ 函数调用方式:getResult(数值1,数值2,数值3,数值4.....)​ 函数功能:返回值是一个对象,这个对象有sum, max, min, averages等属性,分别表示实参的总和、最大值、最小值、平均数等 */
function getResult() {
var sum = 0,
max = arguments[0],
min = arguments[0],
averages = 0
for (k in arguments) {
sum += arguments[k]
if (arguments[k] > max) {
max = arguments[k]
} else if (arguments[k] < min){
min = arguments[k]
}
}
averages = sum / arguments.length
return {
sum : sum,
max : max,
min : min,
averages : averages
}
}
console.log(getResult(1, 3, 10, 5));
// 我觉得这个题有点挑战
</script>
</body>
</html>

然后是一个日常觉得进步了的问题 以前做这个硬是没做出来 可能逻辑盘对了 但代码始终没放对位置

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 以下有两个数组,一个数组arr是班级里所有的学员的名称,一个数组currentArr是提交了每日反馈的学员名单,请创建一种算法,把未提交每日反馈的学员筛选出来 */
var arr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏", "魏明杨", "党婷", "熊飞", "郑翠翠", "李航卫", "屈涛", "汪孝双", "代攀飞", "武志钰", "王亚龙", "周芙榕", "李涛", "郝颖", "文冲洋", "王旭拯", "胡佳豪", "寇晓丽", "马晓晗","王思聪", "张绿", "李德", "郑萍", "张凯", "张嘉成", "葛云侠", "杨磊", "任变", "景德", "高卷林", "刘益凡", "赵娜", "陈章鸣", "张荣召", "赵凯旋", "程倩倩", "脱朝平", "刘吉利", "郭苗苗", "马建峰", "潘瑞", "闫翔", "马晨", "李轩轩", "黄红梅", "刘书彬", "罗强", "刘东","王可可" ,"陈泽文", "李嘉琪", "段佳琦", "黄燕", "邱淑鸿", "宋翔宇", "王波", "樊琳", "王兆国", "许成", "李兴"];
var currentArr = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏", "魏明杨", "党婷", "熊飞", "郑翠翠", "李航卫", "屈涛", "汪孝双", "代攀飞", "武志钰", "王亚龙", "周芙榕", "李涛", "郝颖", "文冲洋", "王旭拯", "胡佳豪", "寇晓丽", "马晓晗", "张绿", "李德","郑萍", "张凯", "张嘉成", "葛云侠", "杨磊", "任变", "景德", "高卷林", "刘益凡", "赵娜", "陈章鸣", "张荣召", "赵凯旋", "程倩倩", "脱朝平", "刘吉利", "郭苗苗", "马建峰", "潘瑞", "闫翔", "马晨", "李轩轩", "黄红梅", "刘书彬", "罗强", "刘东", "陈泽文", "李嘉琪", "段佳琦", "黄燕", "邱淑鸿", "宋翔宇", "王波", "樊琳", "王兆国", "许成", "李兴"];
var newArr = []
for (var i = 0; i < arr.length; i++) {
if (flag) {
newArr[newArr.length] = arr[i - 1]
}
var flag = true
for (k in currentArr) {
if (currentArr[k] === arr[i]) {
flag = false
break
}
}
}
console.log(newArr); // 这个题真的 很能看出些问题 我上一次做这个是想了一两天硬是做不出来 这一次再一做也花了点时间 四十分钟左右 但还好是做出来了 复习一次能看出我太太菜了 也变强了哈哈哈
</script>
</body>
</html>

来了 这个可能有点长 是一个关于字符串内置对象的一些操作 要动点小脑筋

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 字符串:“abaasdffggghhjjkkgfddsssss3444343”,问题如下: 1、 字符串的长度 2、 取出指定位置的字符,如:0,3,5,9等 3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等 4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法 5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串 6、 找出以上字符串中出现次数最多的字符和出现的次数 7、 遍历字符串,并将遍历出的字符两头添加符号“@” */
var str = 'abaasdffggghhjjkkgfddsssss3444343'
// 1.
console.log(str.length);
// 2.
console.log(str.charAt(0));
console.log(str[3]);
console.log(str.charCodeAt(5));
// 3.
function getExist(x, str) {
var flag = false
for (var i = 0; i < str.length; i++) {
if (str.charAt(i) == x) {
flag = true
break
}
}
return flag
}
console.log(getExist('b', str));
// 4.
str = str.replace('g', '22')
str = str.replace('ss', 'b')
console.log(str); // 5.
console.log(str.substr(0, 5));
console.log(str.slice(0, 5)); // 6.
var max = 0
var counts = 0
var temp
var newArr = str.split('')
for (var i = 0; i < newArr.length; i++) {
counts = 0
for (var j = 1; j < newArr.length; j++) {
if (newArr[i] == newArr[j]) {
counts++
newArr.splice(j,1)
}
}
if (counts > max) {
max = counts
temp = newArr[i]
}
}
console.log(temp, max);
// 这个题 十分的有挑战性 我感觉虽然做出来了 但代码有点冗余 但又找不到删减点
// 7.
var newStr = ''
for (var i = 0; i < str.length; i++) {
newStr += str.substr(i, 1)
newStr += '@'
}
newStr = '@' + newStr
console.log(newStr);
</script>
</body>
</html>

最后来一个经典题目随机数的一个应用 还有好多我没放上来 大多数是选了一些比较卡我的 我的代码肯定是有冗余的  但是我目前还是想不出更简单的方式 看有没与高人能帮我指出下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
/* 从以下学员名单中随机选出4个学员: ​ var arr = ["鹿晗","王俊凯","蔡徐坤","彭于晏","周杰伦","刘德华","赵本山"]; ​ 注意:不要有重复的学员 */
var arr = ["鹿晗","王俊凯","蔡徐坤","彭于晏","周杰伦","刘德华","赵本山"]
function getIntRandom(max, min) {
min = Math.ceil(min)
max = Math.floor(max)
return Math.floor(Math.random() * (max - min + 1)) + min
}
var newArr = new Array()
var x = 6
for (var i = 0; i < 4; i++) {
var temp = getIntRandom(0, x)
newArr[newArr.length] = arr[temp]
arr.splice(temp, 1)
x--
}
console.log(newArr);
// 这个题也是当初卡了我很久 现在一做就很快做出来了 复习还是有用的 尽快复习完 马上进入新阶段了
</script>
</body>
</html>

复习 - js基础语法的更多相关文章

  1. JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)

    第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品 ...

  2. 【JS基础语法】---学习roadmap---6 parts

    JS基础语法---roadmap Part 1 - 2: Part 3 - 4:   Part 5 - 6

  3. vue学习笔记:vue.js基础语法

    一.VUE 概述 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅 ...

  4. 9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点

    css3拓展: <display:none>  将某个元素隐藏       <visibility:hidden>  也是将某个元素隐藏 <display:block&g ...

  5. JS基础语法(二)

    目录 JavaScript基础语法(二) 八. 函数 1. 函数的概念 2. 函数的使用 声明函数 调用函数 3. 函数的封装 4. 函数的参数 函数的参数匹配问题 5. 函数返回值 6. argum ...

  6. JavaScript01 js基础语法,数据类型

    JavaScript的概述: 1.组成 三部分组成 ecmaScript 基础语法 (es5) dom document object model 文档对象模型 (操作html文档内容) bom bo ...

  7. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  8. JS高级. 01 复习JS基础

    1. JavaScript 包含: ____, ____, 和 ____. 2. JavaScript 的基本类型有 ____, ____, 和 ____. 3. JavaScript 的复合类型有 ...

  9. JS基础语法---阶段复习+作业练习+接下来知识点heads up

    调试:调试代码---高级程序员都是从调试开始的 调试: 写代码---打开浏览器--F12(开发人员工具)--->Sources---双击文件,在某一行代码前面点击一下(出现的东西就是断点) 一元 ...

  10. JavaScript学习笔记 - 进阶篇(1)- JS基础语法

    前言 JavaScript能做什么? 1.增强页面动态效果(如:下拉菜单.图片轮播.信息滚动等) 2.实现页面与用户之间的实时.动态交互(如:用户注册.登陆验证等) JS进阶篇学习什么? 在JavaS ...

随机推荐

  1. kali 设置 Java 版本,并更换为 1.8 版本

    kali 设置 Java 版本,并更换为 1.8 版本 1.安装 JDK 1.下载java 1.8 :https://repo.huaweicloud.com/java/jdk/8u202-b08/j ...

  2. Swift File Manager 三种文件路径查找方法对比

    目录 1. 引言 2. 三种文件路径查找方法 2. 1 NSSearchPathForDirectoriesInDomains(_:_:_:) 2.2 urls(for:in:) 2.3 url(fo ...

  3. uni-app上使用leaflet地图的解决方案

    在uni-app上自带有map组件,但是那个组件功能太弱,很多高级用法很难实现.用npm添加leaflet呢,又各种报错. 偶然和朋友聊起,可以用html来实现leaflet地图,然后用webview ...

  4. 5G MEC 之本地分流实现方式

    目录 文章目录 目录 前言 LADN ULCL IPv6 Multi-homing(BP) 典型应用场景 前言 最近同事发表了一片非常棒的文章,笔者在此之上进行了补充,转发至此与大家分享. 本地分流作 ...

  5. PageOffice 在线编辑 office文件,回调父页面

    一.子页面调用父页面的方法 var value=window.external.CallParentFunc("ParentFunName(Arguments);");//父页面的 ...

  6. AIRIOT物联网低代码平台如何配置OPC UA驱动?

    AIRIOT物联网低代码平台支持驱动类型丰富,驱动包括但不限于通用驱动信息,无线驱动信息,行业驱动信息及各个厂商驱动.驱动稳定性强,经受住各个大型项目考验,持续稳定运行. AIRIOT物联网低代码平台 ...

  7. centos7下xfs文件系统的备份和恢复:完全备份,增量备份,差异备份

    目录 一.关于xfs文件系统 二.xfsdump的备份级别和注意事项 三.完全备份整个目录/分区,然后恢复数据 四.完全备份分区中某个目录,然后恢复某个文件/文件夹 五.增量备份 一.关于xfs文件系 ...

  8. 一:nacos 的安装与启动方式

    一: nacos 的下载与安装 1,下载 到 github下载  nacos-server-1.2.0.zip  文件   :https://github.com/alibaba/nacos/rele ...

  9. Android 13 - Media框架(15)- OpenMax(三)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 上一节学习了 media.codec 服务中的部分内容,这一节我们将一起了解 OMX IL 层的 API 以及相关的结构体等内容. 1.相关路径 以 ...

  10. 记第一次用python写界面

    花了两三个小时学了Tkinter,做了一个将数据绘制成图的小工具. 1. 获取路径下的所有文件or获取路径下指定名称的文件 1.1  打开文件 //1. 用来放文本框中的文字filename = St ...