今天继续复习了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. 【简说Python WEB】Jinja2模板

    目录 [简说Python WEB]Jinja2模板 目前环境的代码树 抽离出来的Html模板 渲染模板 条件语句 循环语句 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境 ...

  2. ansible(18)--ansible的selinux模块

    1. selinux模块 功能:管理远端主机的 SELINUX 防火墙: 主要参数如下: 参数 说明 state Selinux模式:enforcing.permissive.disabled pol ...

  3. Linux部署Apache 网站服务器(httpd服务)

    一.项目导入: 某学院组建了校园网,建设了学院网站.现需要架设Web服务器来为学院网站安家,同时在网站上传和更新时,需要用到文件上传和下载,因此还要架设FTP服务器,为学院内部和互联网用户提供WWW. ...

  4. 使用js有效括号匹配封装函数

    点击查看代码 function isValidParentheses(str) { // 定义一个栈,用于存储待匹配的左括号 let stack = []; // 定义一个对象,用于快速判断括号是否成 ...

  5. C语言:如何让printf输出更加美化(用游戏英雄属性作例子)

    #include <stdlib.h> /* run this program using the console pauser or add your own getch, system ...

  6. 用 C 语言开发一门编程语言 — 交互式解释器

    目录 文章目录 目录 前言 环境 编译型 vs 解释型 实现交互式解释器 使用 GNU Readline 函数库 前言 通过开发一门类 Lisp 的编程语言来理解编程语言的设计思想,本实践来自著名的& ...

  7. Python:当函数做为参数时的技巧

    我们之前在<Python技法3: 匿名函数.回调函数.高阶函数>中提到,可以通过lambda表达式来为函数设置默认参数,从而修改函数的参数个数: import math def dista ...

  8. 无需重新学习,使用 Kibana 查询/可视化 SLS 数据

    1. 场景 现在通过 SLS 的 ES 兼容能力,可以很方便地实现用 Kibana 来查询和可视化 SLS 的数据.对于从 ES 迁移到 SLS 的用户可以继续保留原来的 Kibana 使用习惯.下面 ...

  9. CCL 2024 Task7 双任务冠军

    近期参加NLP领域CCL2024评测,现将赛题背景和实现方法分享,推理文本纠错领域的发展. 1.背景信息 随着教育的发展和网络的普及,作文评价的规模越来越大,人工评改作文的成本和效率成为一大难题.为了 ...

  10. 5分钟明白LangChain 的输出解析器和链

    本文介绍 LangChain 的输出解析器OutputParser的使用,和基于LangChain的LCEL构建链. 1. 输出解析器OutputParser 1.1.为什么需要OutputParse ...