前端之JavaScript基础学习
一、JS代码引入以及基本代码规范
# 1.js代码书写格式
<script>
....js的代码
</script> #2.script标签写在页面那个位置
1)页面的head标签中和body标签之后
2)建议写在body标签之后(推荐:html读取顺序由上至下) # 3.引入第三方文件
<script src="js的资源路径"></script>
例:<script type='text/javascript' src='/path/to/js文件'></script> # 4.JS的注释方式
// 单行注释
/**
多行注释
**/ # 5.JS的结束符号,以分号为结束符号,如果没有的话,js引擎会自动加上
# 6.写JS代码选择
a.编辑器 (pycharm) (永久生效)
b.chrome浏览器console 开发者平台编写 (临时测试的js代码)
二、变量声明
# a.变量名命名的时候:
1)可以使用 _,数字,字母,$ 组成,且不能以数字开头
2)声明变量使用 var 变量名 来进行声明
var a=34
注意:变量名区分大小写str和Str不是一个变量,也就是js对变量名的大小写是敏感的 # b.JS变量类型
字符串str: var a="hello";
整型:int: var a=10;
浮点型float: var a=3.14;
布尔型bool: true/false;(必须都是小写)
数组array:
# 获取数组内容:
var list=['simon',22,'xc'];
console.log(list[2]);
对象型(字典)dict:json数据格式,python字典
# 读取:
var info = {"name":'simon',"age":30}
console.log(info.name);
console.log(info['name']);
# c.null和undefined
undefined 是声明了变量但未对其赋予值
null 则用于表示尚未存在的空值
# str字符串常见操作方法
var obj="simon-xc" obj.length 长度
obj.trim() 移除空白
obj.trimLeft()
obj.trimRight()
obj.charAt(n) 返回字符串中的第n个字符
obj.concat(value, …) 拼接
obj.indexOf(substring,start) 子序列位置
obj.substring(from, to) 根据索引获取子序列
obj.slice(start, end) 切片
obj.toLowerCase() 大写
obj.toUpperCase() 小写
obj.split(delimiter, limit) 分割 # list数组的常用方法
var obj = ['simon', 12, 'xc']; obj.length 数组的大小
obj.push(ele) 尾部追加元素
obj.pop() 尾部获取一个元素
obj.unshift(ele) 头部插入元素
obj.shift() 头部移除元素
obj.slice( ) 切片
obj.reverse( ) 反转
obj.join(sep) 将数组元素连接起来以构建一个字符串
obj.concat(val,..) 连接数组
obj.sort( ) 对数组元素进行排序
三、运算符介绍
# 算术运算符
+ —— * % ++ --
例:
a++ ----> a += 1
a-- ----> a -= 1 # 比较运算符
> >= < <= != == === !==
例:
=== 全等:
var a = 10;
var b = "10"; a == b
true
a === b
false !== 全不等:都不符合才行
# 赋值运算符
= += -= *= /=
# 逻辑运算符
&& || !
四、流程控制
# 流程控制分为3大类:顺序、分支、循环
# 分支
# if..else..语句
if (条件){
当条件为 true 时执行的代码
}else{
当条件不为 true 时执行的代码
} # if..else if ..else语句
if (条件 1){
当条件 1 为 true 时执行的代码
}else if (条件 2){
当条件 2 为 true 时执行的代码
}else{
当条件 1 和 条件 2 都不为 true 时执行的代码
} # switch语句
var day=new Date().getDay();
switch (day){
case 0:
x="Today it's Sunday";
break;
case 1:
x="Today it's Monday";
break;
case 2:
x="Today it's Tuesday";
break;
case 3:
x="Today it's Wednesday";
break;
default:
x="Looking forward to the Weekend";
}
# 循环
# for 循环
# 数组
var arr = ['simon', '龙哥', 'xc']
#第一种循环:
for (var i in arr){
console.log(arr[i]);
}
# 第二种循环
for (var i=0; i<arr.length; i++){
console.log(arr[i]);
} # 字典
var d = {"name":'simon', 'age':18};
# 只有一种循环
for (var i in d){
console.log(d[i]);
} # while循环
while (i<5){
x=x + "The number is " + i + "<br>";
i++;
}
# 三元运算符
var a = 3;
var b = 5;
c = a > b ? a : b
console.log(c); # 结果:5
五、函数
# 1.函数的定义
注意:javascript中的函数和python的中函数大同小异,唯一不同的是函数的定义方式 # a.正常的定义方式 ---- 普通青年
function test(a,b){
return a + b;
}
# b.匿名函数的定义方式 ---- 2B青年
var sum = function(a, b){
return a + b;
}
# c.立即调用函数方式 ----- 文艺青年
(function(a, b){
return a + b;
})();
ps: 阮一峰:http://www.ruanyifeng.com/home.html
# 2.函数的全局变量和局部变量
全局变量:定义在函数外部,并且推荐使用var进行显式声明
局部变量:定义在函数内部,并且必须使用var进行显式声明 // 全局变量
var age = 73;
function test(){
// 局部变量
var height = 178;
// 默认全局变量
leg = 4;
}
# 3.函数的作用域
# 首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层即window对象,并操作window对象上的属性 console.log(window.a, window.b);
function test(){
var a = "local";
b = "global";
}
console.log(window.a, window.b);
六、常见的模块与常用的方法
# 1.日期类Date
var d = new Date(); getYear() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getFullYear() 从 Date 对象以四位数字返回年份
getMonth() 从 Date 对象返回月份 (0 ~ 11)
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
getHours() 返回 Date 对象的小时 (0 ~ 23)
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)
# 案例
当前时间:<input type='text' value='' id='time'/>
function change(){
var time = document.getElementById("time");
var d = new Date();
time.value = d;
}
setInterval(change, 1000);
# 2.Math数学对象
Math.ceil(数值) 向上取整
Math.floor(数值) 向下取整
Math.round(数值) 把数四舍五入为最接近的整数
Math.min(数值1,数值2) 返回最小值
Math.max(数值1,数值2) 返回最大值
Math.random() 获得0-1之间的随机数
# 3. 常见的其他函数
# 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 # 例如:
# Json字符串
var str1 = {"name":"simon","age":18,"gender":"male"}; # Json 对象
var str1 = {"name":"simon","age":18,"gender":"male"}; # JSON字符串转换成JSON对象:
var obj = JSON.parse(str); // 序列化 # JSON对象转换成JSON字符串:
var str = JSON.stringify(obj); // 反序列化
# 4.evalpython中的eval执行的是表达式,exec执行的是代码,而js中的eval既能执行的表达式,也能执行代码
#5.URL转义
decodeURI() 解码URI
decodeURIComponent() 解码URI中的组件部分
encodeURI() 编码URI
encodeURIComponent() 编码URI中的组件部分
escape() 对字符串进行转义
unescape() 对字符串进行解码
前端之JavaScript基础学习的更多相关文章
- 前端之JavaScript基础
前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...
- 第三篇:web之前端之JavaScript基础
前端之JavaScript基础 前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript ...
- JavaScript 基础学习1-day14
JavaScript 基础学习1 知识预览JavaScript概述二 JavaScript的基础三 JavaScript的对象BOM对象DOM对象实例练习js扩展 JavaScript概述 JavaS ...
- 48.javascript基础学习
javascript基础学习: http://www.w3school.com.cn/jsref/index.asp jS的引入方式: 1.行间事件:为某一个具体的元素标签赋予js内容,oncli ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- JavaScript 基础 学习 (四)
JavaScript 基础 学习 (四) 解绑事件 dom级 事件解绑 元素.on事件类型 = null 因为赋值的关系,所以给事件赋值为 null 的时候 事件触发的时候,就没有事件处理 ...
- JavaScript 基础 学习(三)
JavaScript 基础 学习(三) 事件三要素 1.事件源: 绑定在谁身上的事件(和谁约定好) 2.事件类型: 绑定一个什么事件 3.事件处理函数: 当行为发生的时候,要执行哪一个函数 ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- JavaScript 基础 学习 (一)
JavaScript 基础 学习 获取页面中的元素的方法 作用:通过各种方式获取页面中的元素 比如:id,类名,标签名,选择器 的方式来获取元素 伪数组: 长的和数组差不多,也是按照索引排 ...
- JavaScript 基础学习(二)
JavaScript 基础学习(二) instanceof方法: var s = "hello"; var i = 8; //typeof 只能判断基本数据类型 alert(typ ...
随机推荐
- FFmpeg开发笔记(五)更新MSYS的密钥环
<FFmpeg开发实战:从零基础到短视频上线>一书提到:使用MSYS对FFmpeg进行交叉编译时,需要事先安装交叉编译工具链,也就是执行下面命令. pacman -S mingw-w6 ...
- 解密prompt系列25. RLHF改良方案之样本标注:RLAIF & SALMON
上一章我们主要唠了RLHF训练相关的方案,这一章我们主要针对RLHF的样本构建阶段,引入机器标注来降低人工标注的成本.主要介绍两个方案:RLAIF,和IBM的SALMON. RLAIF RLAIF: ...
- verilog的文件流和项目流
verilog的文件流和项目流 1.写在前面 在学习FPGA时,一般都是从项目流入手的.从一个集成的开发环境创建一个工程.通过一个个组件的编写和设置来实现某个项目.这样的操作固然简单,对于设计者来说只 ...
- 一个可以让你有更多时间摸鱼的WPF控件(二)
前言 上文介绍了如何通过一个Form自定义控件来简化数据的录入,并自动实现数据校验,自动布局排列等功能.本文继续介绍如何优化表格控件的使用,缩减代码量,实现工作效率的提升. 一.功能实现 上文中分析了 ...
- 【已解决】MySQL数据库8.0版本 连接失败错误码1251
错误原因: 是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 解决方式: 1. cmd 进入 ...
- 关于JDK21控制台字符集编码问题
关于JDK21控制台字符集编码问题 前言: 某日尝试JDK21,idea控制台字符集编码一直乱码,后将idea所有能配置UTF-8的配置都配了一遍,无果,后搜索JDK21字符集编码相关后解决 1.配置 ...
- #团,构造#洛谷 3524 [POI2011]IMP-Party
题目 有一个 \(3n\) 个点的无向图,保证有一个大小为 \(2n\) 的团,输出一个大小为 \(n\) 的团 分析 每次选择两个不相连的点删掉,那么剩下的 \(n\) 个点一定是团, 因为每次至少 ...
- #Dinic,最大权闭合子图#CF1473F Strange Set
题目 分析 对于这种依赖关系,可以将正权值连源点,负权值连汇点, 然后 \(i\) 向 \(j(j<i)\) 连无穷大的边,注意到如果完全建图空间不够, 考虑记录每个约数最后一次出现的位置,直接 ...
- #线性筛,斐波那契数列,GCD#BZOJ 2813 奇妙的Fibonacci
题目 有一个斐波那契数列,满足 \[F_n=\begin{cases}1\qquad (n==1)\\1\qquad (n==2)\\F_{n-1}+F_{n-2}\qquad (n>2)\en ...
- 【直播回顾】OpenHarmony知识赋能五期第三课——多媒体整体介绍
5月5日晚上19点,知识赋能第五期第三节课<OpenHarmony标准系统多媒体子系统整体介绍>,在OpenHarmony开发者成长计划社群内成功举行. 本期课程,由深开鸿资深技术专家郭岳 ...