JavaScript(js)笔记
js注释
JavaScript注释与Java注释相同
// 单行注释
/*
多行注释
*/
js五大基本类型:
number(数值型)、string(字符串性)、boolean(布尔型)、undefined类型、null类型
number包括:数值类型、包含整型、浮点型、NaN和Infinity(无穷大)。
关于数组的空间长度问题:
如何获取数组的空间长度:
通过length属性获取数组的空间长度
数组的length详解:
java:只读属性
js:读写属性
数组元素的默认值:
java:
1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。
2、浮点型(float、double)的基本类型变量的默认值为0.0。
3、字符型(char)的基本类型变量的默认为 “/u0000”。
4、布尔性的基本类型变量的默认值为 false。
5、引用类型的变量是默认值为 null(null就是空对象)。
js:undefined
JavaScript 输出
JavaScript 没有任何打印或者输出的函数。
JavaScript 可以通过不同的方式来输出数据:
使用 **window.alert() **弹出警告框。
使用 **document.write() **方法将内容写到 HTML 文档中。
使用 **innerHTML 写入到 HTML 元素。
使用console.log() **写入到浏览器的控制台。
js数组排序:
sort(): 函数按照字符串顺序对值进行升序排序。
数组.sort(function(a, b){return a - b});
//字符串数组(字母顺序对数组进行排序)
var arr_str = ["Banana", "Orange", "Apple", "Mango"];
var arr_str_sort = arr_str.sort();
document.write(arr_str_sort);
//整形数组
var arr = [9,5,1,2,7,6,4,3,0];
var arr_sort = arr.sort(function(a, b){return a - b});
console.log(arr_sort);
解决js代码放在标签前面或<head>
内导致js代码无效的解决方案:
使用<script>
无效的解决方案:
window.οnlοad = function() {
//js代码
}
使用jquery无效的解决方案:
$(document).ready(function() {
//js代码
})
假设法:
1、定义一个变量,标记该变量的值为true。
2、推翻假设,把标记的值修改为false,并且跳出循环。
3、如果标记的值依旧为true,则证明为真;
如果标记的值修改为false,则证明为假
// 1.通过询问框获得一个正整数
var num = prompt("请输入一个正整数");
// a)假设num就是一个质数
var flag = true; // 设置标记的值为true
// 2.通过循环获得[2, num)之间所有的整数
for(var i = 2; i < num; i++) {
// b)判断num是否能被i整除。
if(num % i === 0) {
// 此处已经证明num不是一个质数,那么推翻假设,修改标记的值
flag = false;
// 因为此处已经确定num不是一个质数,所以后续循环没必要进行,那么我们需要跳出循环
break;
}
}
// c)价差flag标记的值,从而确定num是否是一个质数
if(flag) { // flag == true
document.write(num + "是一个质数");
} else { // flag == false
document.write(num + "不是一个质数");
}
常见的HTML事件
下面是一些常见的HTML事件的列表:
事件 | 描述 |
---|---|
onload | 窗体加载事件 |
onclick | 鼠标单击事件 |
ondblclick | 鼠标双击事件 |
onfocus | 获得焦点事件 |
onblur | 失去焦点事件 |
onchange | 选项改变事件(通常用在下拉列表框) |
onmousemove | 当鼠标移动到某个事件源就会触发 |
onmouseover | 当鼠标悬停到某个事件源就会触发 |
onmouseout | 当鼠标离开某个事件源就会触发 |
onmousedown | 当鼠标按下某个事件源就会触发 |
onmouseup | 当鼠标释放某个事件源就会触发 |
onkeyup | 键盘释放触发 |
onkeydown | 键盘按下触发 |
onkeypress | 键盘在按下和释放之间触发 |
条件语句
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
JavaScript三目运算 - 当条件为true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行
常用的正则表达式及使用方法:
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子字符串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子字符串。
(详情参照:https://www.runoob.com/js/js-regexp.html)
/*是否带有小数*/
function isDecimal(strValue ) {
var objRegExp= /^\d+\.\d+$/;
return objRegExp.test(strValue);
}
/*校验是否中文名称组成 */
function ischina(str) {
var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/
return reg.test(str); /*进行验证*/
}
/*校验是否全由8位数字组成 */
function isStudentNo(str) {
var reg=/^[0-9]{8}$/; /*定义验证表达式*/
return reg.test(str); /*进行验证*/
}
/*校验电话码格式 */
function isTelCode(str) {
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
return reg.test(str);
}
/*校验邮件地址是否合法 */
function IsEmail(str) {
var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
return reg.test(str);
}
操作DOM元素的属性
innerHTML:改变DOM树的结构
innerText:不会改变,只会在元素里面添加文本信息
$("div1").innerHTML="<a href='#'>点击我</a>";
$("div2").innerText="<a href='#'>点击我</a>";
setAttribute(属性名,属性值);
getAttrribute(属性名);
removeAttribute(属性名);
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
img{
width:200px;
height:200px;
border:1px solid red;
}
</style>
<script>
window.onload=function(){
function $(id){
return document.getElementById(id);
}
$("btn").onclick=function(){
// 设置操作:将字符串../img/photo.jpg,赋值给img元素的src属性
$("myImg").setAttribute("src","../img/photo.jpg");
}
$("btn2").onclick=function(){
var imgPath=$("myImg").getAttribute("src");
alert(imgPath);
}
$("btn3").onclick=function(){
$("myImg").removeAttribute("src");
}
}
</script>
</head>
<body>
<img src="" id="myImg"/><br />
<input type="button" id="btn" value="显示图像" />
<input type="button" id="btn2" value="获取图像路径" />
<input type="button" id="btn3" value="删除图像路径" />
</body>
</html>
节点操作
parentNode:访问子节点的父节点
children:访问父节点的子节点
创建和插入子节点
createElement: 建立子节点
insertBefore:插入子节点
removeChild:删除父节点的子节点
cloneNode:克隆子节点
全选、全否、反选案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>全选、全否、反选</title>
<script>
window.onload=function (){
function $(id){
return document.getElementById(id);
}
/**
* 1.定义变量hobbys:存储所有选择的爱好
* 2.遍历所有的复选框,取出复选框的值,追加到hobbys变量中
* 3.将hobbys变量的值,设置到文本框
* */
// 获取所有的爱好
var hobbyList =document.getElementsByName("hobby");
var hobbys="";
$("btn1").onclick=function(){
for(var i=0;i<hobbyList.length;i++){
hobbyList[i].checked=true;
hobbys+=hobbyList[i].value+"-";
}
$("txtResult").value=hobbys;
}
// 全否
$("btn2").onclick=function(){
for(var i=0;i<hobbyList.length;i++){
hobbyList[i].checked=false;
}
// 清空之前全选的数据
hobbys="";
$("txtResult").value="";
}
// 反选:获取所有的爱好集合,遍历每个元素,进行取反操作(true->false, false->true)
$("btn3").onclick=function(){
hobbys="";
for(var i=0;i<hobbyList.length;i++){
//条件成立表示之前已经选中了,true改为false
if(hobbyList[i].checked){
hobbyList[i].checked=false;
}else{
hobbyList[i].checked=true;
//一旦选中将复选框的值追加到hobbys变量
hobbys+=hobbyList[i].value+"-";
}
}
// 将复选框选中的值设置到文本框
$("txtResult").value=hobbys;
}
}
</script>
</head>
<body>
<input type="checkbox" name="hobby" value="football" />足球
<input type="checkbox" name="hobby" value="basketball" />篮球
<input type="checkbox" name="hobby" value="pingpong" />乒乓球
<input type="checkbox" name="hobby" value="tennis" />网球
<input type="checkbox" name="hobby" value="swimming" />游泳
<br />
<input type="button" id="btn1" value="全选" />
<input type="button" id="btn2" value="全否" />
<input type="button" id="btn3" value="反选" />
<br />
<input type="text" id="txtResult" size="50px" placeholder="展示所有爱好"/>
</body>
</html>
js中Window方法
一些其他方法:
- window.open() - 打开新窗口
- window.close() - 关闭当前窗口
- window.moveTo() - 移动当前窗口
- window.resizeTo() - 调整当前窗口的尺寸
JavaScript(js)笔记的更多相关文章
- 【转】关于URL编码/javascript/js url 编码/url的三个js编码函数
来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),e ...
- JavaScript基础笔记一
一.真假判断 真的:true.非零数字.非空字符串.非空对象 假的:false.数字零.空字符串.空对象.undefined 例: if(0){ alert(1) }else{ alert(2) } ...
- 关于URL编码/javascript/js url 编码/url的三个js编码函数
关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javasc ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- JavaScript 重点笔记
JavaScript 重点笔记 ## 数组 // 必须掌握 - arr.length:获取数组元素的长度 - arr.splice(起始位置,长度):从数组中添加或删除元素. - arr.indexO ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- javascript进阶笔记(2)
js是一门函数式语言,因为js的强大威力依赖于是否将其作为函数式语言进行使用.在js中,我们通常要大量使用函数式编程风格.函数式编程专注于:少而精.通常无副作用.将函数作为程序代码的基础构件块. 在函 ...
- Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制 1. 语法错误(ERROR)和运行期错误(Exception) 1 2. 错误类型判断 ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- JavaScript:学习笔记(2)——基本概念与数据类型
JavaScript:学习笔记(2)——基本概念与数据类型 语法 1.区分大小写.Test 和 test 是完全不同的两个变量. 2.语句最好以分号结束,也就是说不以分号结束也可以. 变量 1.JS的 ...
随机推荐
- Cats and Fish HihoCoder - 1631
Cats and Fish HihoCoder - 1631 题意: 有一些猫和一些鱼,每只猫有固定的吃鱼速度,吃的快的猫优先选择吃鱼,问在x秒时有多少完整的鱼和有多少猫正在吃鱼? 题解: 模拟一下. ...
- Ubuntu14.04 打开关闭图形桌面
使用 Ctrl+Alt+t 打开命令行界面 #关闭桌面 sudo service lightdm stop #恢复桌面 sudo service lightdm start Ctrl+Alt+F1 可 ...
- 新树莓派系统安装ROS记录
树莓派系统更新了,作为版本控的我怎么能忍住不更新系统,为了提高系统的速度,买了张170M的告诉sd卡,我要说的是,这个高速SD卡的钱花的最值得了,千万不要觉得树莓派都买了4,还要什么高速SD卡(自行车 ...
- zookeeper源码 — 三、集群启动—leader、follower同步
zookeeper集群启动的时候,首先读取配置,接着开始选举,选举完成以后,每个server根据选举的结果设置自己的角色,角色设置完成后leader需要和所有的follower同步.上面一篇介绍了le ...
- 删除顺序表L中下标为p(0<=p<=length-1)的元素,成功返回1,不成功返回0,并将删除元素的值赋给e
原创:转载请注明出处. [天勤2-2]删除顺序表L中下标为p(0<=p<=length-1)的元素,成功返回1,不成功返回0,并将删除元素的值赋给e 代码: //删除顺序表L中下标为p(0 ...
- Flutter移动电商实战 --(30)列表页_商品列表UI界面布局
小程序里面的布局方式 小程序的图片上这里使用的是warp布局,因为首页里面火爆专区,已经用过了warp来布局了. 所以这里我们没有必要再讲一遍,这里我们使用ListView,我们把它布局成下图这种形式 ...
- JMeter-jp@gc - PerfMon Metrics Collector-CPU监控工具的配置及使用(win版本)
服务器端放这个 如果端口号被占用,默认报这个错: 如果默认的4444端口被占用的修改: C:\Users\Administrator>CD E:\E:\apache-jmeter-4.0\Ser ...
- 在Vue文件中引用模块的相对路径“@“符号表示什么意思?
@ 的作用是在你引入模块时,可以使用 @ 代替 /src 目录,避免书写麻烦又易错的相对路径. import model from "@/common/model"; // 默认路 ...
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_10-修改页面-前端-修改页面
1.进入页面,通过钩子方法请求服务端获取页面信息,并赋值给数据模型对象 2.页面信息通过数据绑定在表单显示 3.用户修改信息点击“提交”请求服务端修改页面信息接口 3.3.3 修改页面 3.3.3.1 ...
- delete和析构函数
new一个类的时候,调用这个类的构造函数,然后在这个类的生命周期内可能会动态生成很多指向堆上的内存,所以应该在析构函数里回收这些内存: 当delete这个类的时候,会首先调用这个类的析构函数,即回收生 ...