JS_jQuery_BootStrap

  • JavaScript
    • script 标签
    • 基础语法
    • 数据类型
    • 字符串的遍历
    • 数组的遍历
    • 对象的遍历
    • 常用 API 参考
    • 函数
    • DOM 操作
  • jQuery
    • 基于 jQuery 的各种插件
  • BootStrap

Java 从 0 到架构师目录:【Java从0到架构师】学习记录

Gitee 代码:https://gitee.com/szluyu99/mj_java/tree/master/08_js/web/WEB-INF/page

JavaScript

JS 参考资料:Mozilla MDN、javascript.info

Javascript 简称 JS,是广泛应用于前端开发中的脚本语言

Javascript 遵循了 Java 的表达式语法、命名规范、基础流程控制

这也是 Javascript 从 MLiveScript 更名的原因之一

JS 的标准化组织是 ECMA,这种标准化的 JS 被称为 ECMAScript,简称 ES

  • 2011/06,ES5.1
  • 2015/06,ES2015,ES6
  • 2016/06,ES2016,ES7
  • 2017/06,ES2017,ES8
  • 2018/06,ES2018,ES9
  • 2019/06,ES2019,ES10

JavaScript 常见用途:

  • 跟用户进行交互
  • 对标签的增删改查
  • 实现绚丽的动画效果
  • 跟服务器进行交互

script 标签

在 script 标签中编写 JS 代码( 标签可以在 head、body 中)

<!-- type 的默认值就是 text/javascript -->
<script type="text/javascript">// 编写JS代码
</script>

可以使用 script 标签引用 js 文件

<script src="js/jquery-3.4.1.min.js"></script>

基础语法

JS 每一条语句结束后可以加分号,也可以不加分号(现在建议不加分号)

如果选择不加分号,那么每一条语句需要独占一行

常见输出方式:alertconsole.log

JS 中有两种注释:单行注释、多行注释

<scipt>// 单行注释/*多行注释多行注释*/
</script>

JS 中用 varlet 定义变量(建议用 let),const 定义常量

let score = 10
score += 20
console.log(score) // 30const age = 10
consle.log(age) // 10

字符串的拼接:

const name = "jack"
const age = 20// my name is jack, age is 20
console.log('my name is ' + name + ", age is " + age)
console.log(`my name is ${name}, age is ${age}`)
console.log(`my name is ${'ja' + 'ck'}, age is ${19 + 1}`)

监听标签的点击事件:

<span onclik="change()">换一换</span>
function change() {console.log("点击了【换一换】")
}

数据类型

JS 中有 8 种数据类型:

  • number:整数、浮点数
1
-10
8.6
  • bigint:任意长度的整数
12345678987654321n
  • string:字符串
"jack"
'jack'
`jack`
  • boolean:真假
true
false
  • undefined:未分配的值\
undefined
  • null:不存在或无效
null
  • object:对象
{}
[]
  • symbol:唯一标识符

typeof 运算符(类型运算符):返回 x 的类型,返回值是字符串类型

typeof x
typeof (x)

使用示例:

console.log(typeof 1) // number
console.log(typeof 1.0) // number
console.log(typeof 1n) // bigint
console.log(typeof 'jack') // string
console.log(typeof "jack") // string
console.log(typeof true) // boolean
console.log(typeof {name: 'jack',age: 10
}) // object
console.log(typeof [1, '2', true]) // object
console.log(typeof undefined) // undefined
console.log(typeof Symbol()) // symbol
console.log(typeof alert) // function

有一个比较特殊的,可以视为 javascript 早期的设计缺陷:

console.log(typeof null) // object

字符串的遍历

for (let ... of ...) 遍历时获取元素内容:

const str = 'cat'
for (const c of str) {console.log(c)
}
// c
// a
// t

for (let ... in ...) 遍历时获取元素下标:

for (let i in str) {console.log(i, str.charAt(i))
}
// 0 c
// 1 a
// 2 t

常规的 for 循环遍历方式:

for (let i = 0; i < str.length; i++) {console.log(i, str.charAt(i))
}
// 0 c
// 1 a
// 2 t

数组的遍历

const arr = [11, '22']

for (let ... of...) 遍历时获取元素内容:

for (const e of arr) {console.log(e)
}
// 11
// 22

数组的 forEach 方法遍历:

arr.forEach((e, idx) => {console.log(idx, e);
});
// 0 11
// 1 22

for (let ... in ...) 遍历时获取元素下标:

for (let i in arr) {console.log(i, arr[i])
}
// 0 11
// 1 22

常规的 for 循环遍历:

for (let i = 0; i < arr.length; i++) {console.log(i, arr[i])
}
// 0 11
// 1 22

对象的遍历

const person = {name: 'jack', age: 20};

for (let ... in...) 遍历时获取元素内容:

for (const k in person) {console.log(k, person[k])
}
// name jack
// age 20

注意:for (let ... of ...) 无法直接遍历对象,会提示 person is not iterable

for (let ... of ...) 结合 Object.keys 方式遍历:

for (const k of Object.keys(peson)) {console.log(k, person[k])
}
// name jack
// age 20

for (let ... of ...) 结合 Object.entries(person) 方式遍历:

for (const entry of Object.entries(person)) {console.log(entry[0], entry[1])
}
// name jack
// age 20

for (let ... of ...) 结合 Object.values 方式遍历:只能遍历出对象的属性的值

for (const v of Object.values(person)) {console.log(v)
}
// jack
// 20

常用 API 参考

数字:https://zh.javascript.info/number

字符串:https://zh.javascript.info/string

数组:https://zh.javascript.info/array、https://zh.javascript.info/array-methods

函数

function sum(a, b, c=10) {return a + b + c
}console.log(sum(1, 2, 3)) // 6
console.log(sum(1, 2)) // 13
console.log(sum(1)) // NaN
console.log(sum()) // NaN

JS 中,函数可以作为参数、返回值

ES6 开始,推出了箭头函数

function execute(fn, a, b) {console.log(fn(a, b))
}// 30
execute(function(a, b) {return a + b
}, 10, 20)// 30
execute((a, b) => {return a + b
}, 10, 20)// 30
execute((a, b) => a + b, 10, 20)

DOM 操作

参考文档:文档对象类型(DOM)

DOM 操作就是指对 HTML 文档中节点的增删改查操作

// 删除id为vv的节点
document.getElementById('vv').remove()// 删除第一个div节点
document.getElementByTagName('div')[0].remove()// 删除第二个class为link的节点
document.getElementByClassName('link')[1].remove()

更建议使用 querySelector 根据 CSS 选择器获取节点,再进行操作

// 删除id为vv的节点
document.querySelector('#vv').remove()// 删除第一个div节点
document.querySelector('div').remove()// 删除第二个class为link的节点
document.querySelector('.link')[1].remove()

jQuery

参考文档:中文文档、英文文档

jQuery 前端开发中非常著名的一个开源框架

使用 jQuery 来操作 DOM 节点能够大大提高开发效率:

$('#vv').remove()
$('div').remove()
$('.link')[1].remove()

绑定点击事件:

document.querySelector(sel).onclick = function() {}
$(sel).on('click', function() {})
$(sel).click(function() {})

基于 jQuery 的各种插件

jQuery UI:https://jqueryui.com/、https://www.jqueryui.org.cn/

jQuery Validation Plugin:https://jqueryvalidation.org/

BootStrap

Bootstrap 是非常强大的前端库,可以帮助开发者快速开发出简洁美观、响应式的前端页面

BootStrap 由 Twitter 公司出品:https://getbootstrap.com/、https://www.bootcss.com/


加深对 colcol-smcol-mdcol-lg 的理解:

  • col 会将内容进行调整,来强制满足栅格布局
  • col-smcol-mdcol-lg 会根据缩放的尺度,来动态调整内容,从而实现效果较好的响应式

【Java从0到架构师】JS_jQuery_BootStrap相关推荐

  1. 【Java从0到架构师(1),Java中高级面试题总结(全面)

    JSP 九大内置对象 MySQL 基础 + 多表查询 [Java从0到架构师]MySQL 基础 MySQL MySQL 的使用步骤 数据库的内部存储细节 GUI 工具 SQL 语句 DDL 语句 DD ...

  2. 【Java从0到架构师】SpringCloud - Sleuth、Zipkin、Config

    SpringCloud 链路追踪组件 Sleuth Zipkin 分布式配置中心 - Config Git + Config 分布式配置中心 Java 从 0 到架构师目录:[Java从0到架构师]学 ...

  3. 【Java从0到架构师】SpringCloud - Hystrix、Zuul

    SpringCloud 基本概念 熔断和降级 服务雪崩效应 服务熔断与降级 - Hystrix SpringBoot 集成 Hystrix 熔断降级服务异常报警通知 重点属性 - 熔断隔离策略.超时时 ...

  4. 【Java从0到架构师】SpringCloud - Eureka、Ribbon、Feign

    SpringCloud 分布式.微服务相关概念 微服务框架构选型 SpringCloud 概述 服务注册与发现 - Eureka 案例项目 Eureka 自我保护机制 微服务调用方式 - Ribbon ...

  5. 【Java从0到架构师】RocketMQ 使用 - 集成 SpringBoot

    RocketMQ 消息中间件 集成 SpringBoot 入门案例 生产消息类型 - 同步.异步.一次性 消费模式 - 集群.广播 延时消息 设置消息标签 设置消息的 Key 自定义属性设置 消息过滤 ...

  6. 【Java从0到架构师】RocketMQ 使用 - 发送消息、接收消息、特殊消息

    RocketMQ 消息中间件 入门案例 NameServer 地址 发送消息 同步发送消息 异步发送消息 一次性发送消息 生产者组.消息封装 接收消息 消费方式:推式消费.拉式消费 消息方式:集群模式 ...

  7. 【Java从0到架构师】RocketMQ 基础 - 应用、核心组件、安装

    RocketMQ 消息中间件 基础知识 消息中间件的应用 异步解耦 削峰填谷 消息分发 RocketMQ 核心组件 RocketMQ 安装 源码安装 修改配置参数 启动 管理控制台安装 测试项目 Ja ...

  8. 【Java从0到架构师】Dubbo 基础 - 设置启动时检查、直接提供者、线程模型、负载均衡、集群容错、服务降级

    Dubbo 分布式 RPC 分布式核心基础 分布式概述 RPC Dubbo Dubbo 入门程序 - XML.注解 部署管理控制台 Dubbo Admin 修改绑定的注册 IP 地址 设置启动时检查 ...

  9. 【Java从0到架构师】分布式框架通信核心基础 - 序列化(JDK、Protobuf)、远程过程调用 RMI

    分布式框架通信核心基础 序列化 JDK 的序列化 JDK 序列化的一些细节 Protobuf 序列化 Protobuf 环境搭建与操作 Protobuf 原理分析 实际数据传输 序列化技术选型 远程过 ...

最新文章

  1. 双目标帕累托优化_结构力学中的优化分析(3) —— 结构优化分析
  2. vuex modules 命名空间
  3. java基本数据类型和包装类相互转换
  4. 如何用c语言从txt文件中读取数据
  5. 《FPGA 应用开发入门与典型实例》(修订版)
  6. 解析C#中[],List,Array,ArrayList的区别及应用
  7. selenium火狐驱动_在Selenium Firefox驱动程序上运行测试
  8. python输出excel能够识别的utf-8格式csv文件
  9. ArcGIS中创建数据要素模板,便捷数据采集
  10. ssh配置公钥_CentOS配置SSH免密登陆
  11. deepin linux固态硬盘安装教程,如何安装深度deepin 国产Linux教程 主要操作如下
  12. 小程序的今天就是微信指数的明天
  13. 如何查找oracle中的服务器端口号,客户端端口号,监听端口及号Enterprise Manager Console HTTP 端口
  14. 【线性代数】矩阵的基本概念和运算性质
  15. Impala简介(整理)
  16. 2020HYS-MISC-你觉得这个是什么文件
  17. 基于Casbin实现ABAC
  18. HihoCoder - 1082 然而沼跃鱼早就看穿了一切
  19. BUUCTF-[2019红帽杯]SnakeDig the way
  20. JAVA素因子只有3 5 7_第k个数

热门文章

  1. 一个做运营的朋友过来抱怨,现在HR谈薪都这么强硬吗?
  2. 华为鸿蒙HarmonyOS-面向全场景的分布式操作系统
  3. 如果量子计算机成功应用,这世界上还有普通人的生存空间吗?
  4. MySQL 5.7 解压版 安装教程(图文详细)[Windows](转载)
  5. SQL Server 2014中的混合云和Hekaton功能
  6. azure云数据库_在Azure SQL数据库中配置电子邮件通知
  7. 使用SSIS包导入SQL Server FILESTREAM数据
  8. golang基础之三-字符串,时间,流程控制,函数
  9. MySQL数据库储存引擎Inoodb一--记录储存结构
  10. iOS中TextView显示HTML文本