js的流程控制

  • if语句:
if (条件表达式A){
xx;
}else if (条件表达式B){
xx;
}
else{
xx;
}
  • switch语句:
switch (表达式){
case 值1:
xxx;
break;
case 值2:
xxx;
break;
default: //所有case都不满足时执行
xxx;
}
  • for语句:
for(初始化语句;循环判断语句;循环执行语句){
xxx;
}
  • while语句:
while(循环判断语句){
xxx;
}
  • do....while语句:
do{
xxx;
}while(循环判断语句);

JavaScript的本地对象

字符型对象String

有三种定义方法:

  1. var s = new String('字符串内容');
  2. var s = String('字符串内容');
  3. var s = '字符串内容';

字符串的属性length可以返回其长度,可通过索引返回指定位置字符,通过+拼接。

数字转字符串:nub.tostring()

字符串转数字:Number(str)

字符串对象常用方法:

  • str.substring(start,end):截取字符串,如果只传一个参数,则默认截取到最后一个为止。左闭右开。
  • str.slice(start,end):切片,左闭右开,r若两个参数为负数,必须保证abs(start)>abs(end)。
  • str.split("?"):切割,按照指定参数进行切割,返回一个数组。
  • str.indexOf("?"):查找并返回匹配字符串出现的位置,若没找到,返回-1.
  • str.toUpperCase():全部转换成大写。
  • str.toLowerCase():全部转换成小写。
  • str.Replace("a","b"):用b替换字符串中的a,只能替换一个。

日期对象Date

定义一个日期对象:var date = new Date();返回的格式如下:

Tue Nov 20 2018 21:22:41 GMT+0800 (中国标准时间)

获取方法:

  • date.getFullYear():返回年份
  • date.getMonth():返回月份,月份为实际月份减一,即十二月为0.
  • date.getDate():返回日期
  • date.getHours():返回当前小时
  • date.getMinutes():返回当前几分
  • date.getSeconds():返回当前多少秒
  • date.getDay():返回周期,周日为0.

设置方法:将date换成set将变成对应的设置方法,但没有设置秒,设置年份为四位数字、设置月份范围为0~11、小时为0~23。

还可以以时间戳设置时间,单位是毫秒:date.setTime().

转换方法:原本时间格式是Tue Nov 20 2018 21:42:05 GMT+0800 (中国标准时间)

  • date.toString():       Tue Nov 20 2018 21:43:55 GMT+0800 (中国标准时间)
  • date.toTimeString():   21:43:55 GMT+0800 (中国标准时间)
  • date.toDateString():    Tue Nov 20 2018
  • date.toLocaleString():  2018/11/20 下午9:43:55
  • date.toLocaleTimeString():  下午9:43:55
  • date.toLocaleDateString():  2018/11/20

数学对象Math

数学对象常用属性有:

  1. PI  :圆周率
  2. E:常量e,近似于2.71828
  3. LN2:2的自然对数
  4. LN10:10的自然对数
  5. LOG2E:以2为底的e的对数
  6. LOG10E:以10为底的e的对数

数学对象常用方法:

  • Math.abs():取绝对值
  • Math.ceil():往上取整
  • Math.floor():往下取整
  • Math.round():四舍五入取整
  • Math.max():返回所有参数中的最大值
  • Math.pow(x,y):返回x的y次幂
  • Math.sqrt():返回参数的平方根
  • Math.random():随即返回一个0~1的数

定时器

创建一个定时器有三种方式:

  • 第一种使用setTimeout方法,这个定时器只执行一次。
timer = setTimeout(function(){
//执行语句
},1000); //timer是创建的一个定时器对象,1000是间隔时间,单位是毫秒
  • 第二种使用setInterval方法,这种定时器可以一直执行下去。
timer = setInterval(function (){
//执行语句
},1000);
  • 第三种也是用setInterval方法,但他是配合另外的函数使用。
setInterval(函数名,1000);

消除定时器

  • clearInterval(定时器对象);
  • clearTimeout(定时器对象);

定时器小例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>定时器</title>
<style>
*{
padding:0;
margin:0;
}
div.content{
height:150px;
margin-top:50px;
text-align: center;
}
.time{
color:red;
font-weight: bolder;
font-size:19px;
}
.end_time{
color:purple;
font-size: 21px;
/*margin-top:65px;*/ }
#clock{
text-align: center;
}
</style>
</head>
<body>
<div class="content">敌军还有<span class="time" second="5">5</span>秒到达战场</div>
<div id="clock"></div>
<script>
otime = document.getElementsByClassName("time");
ocontent = document.getElementsByClassName("content");
oclock = document.getElementById("clock");
var nub = otime[0].getAttribute("second");
// alert(nub);
timer = setInterval(function(){
nub--;
otime[0].innerHTML = nub;
if (nub === 0){
ocontent[0].innerHTML = "<p class='end_time'>全军出击!!!</p>";
clearInterval(timer);
}
},1000);
function fn() {
var data = new Date;
var year =data.getFullYear();
var mon = data.getMonth()+1;
var day = data.getDate();
var hour = data.getHours();
var minute = data.getMinutes();
var second = data.getSeconds();
if (minute<10){
minute = "0" + minute;
}
if (hour<10){
hour = "0" + hour;
}
if (second<10){
second = "0" + second;
} oclock.innerHTML = year + "年" + mon + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒";
}
fn();
setInterval(fn,1000); </script>
</body>
</html>

JavaScript详解(二)的更多相关文章

  1. .NET DLL 保护措施详解(二)关于性能的测试

    先说结果: 加了缓存的结果与C#原生代码差异不大了 我对三种方式进行了测试: 第一种,每次调用均动态编译 第二种,缓存编译好的对象 第三种,直接调用原生C#代码 .net dll保护系列 ------ ...

  2. PopUpWindow使用详解(二)——进阶及答疑

      相关文章:1.<PopUpWindow使用详解(一)——基本使用>2.<PopUpWindow使用详解(二)——进阶及答疑> 上篇为大家基本讲述了有关PopupWindow ...

  3. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  4. logback -- 配置详解 -- 二 -- <appender>

    附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appen ...

  5. 爬虫入门之urllib库详解(二)

    爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...

  6. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  7. Android View 的绘制流程之 Layout 和 Draw 过程详解 (二)

    View 的绘制系列文章: Android View 的绘制流程之 Measure 过程详解 (一) Android View 绘制流程之 DecorView 与 ViewRootImpl 在上一篇  ...

  8. HTTPS详解二:SSL / TLS 工作原理和详细握手过程

    HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...

  9. Linux dts 设备树详解(二) 动手编写设备树dts

    Linux dts 设备树详解(一) 基础知识 Linux dts 设备树详解(二) 动手编写设备树dts 文章目录 前言 硬件结构 设备树dts文件 前言 在简单了解概念之后,我们可以开始尝试写一个 ...

  10. pika详解(二) BlockingConnection

    pika详解(二) BlockingConnection   本文链接:https://blog.csdn.net/comprel/article/details/94592348 版权 Blocki ...

随机推荐

  1. 代码化UI设计

    最近在阅读Qt 5.9 C++开发指南,为了加深对书本上内容的理解,参照书上的讲解尝试写了一些demo,用于以后工作中查阅,如果涉及侵权请告知,实例程序samp2_3 mydialog.h #ifnd ...

  2. 模块化es6规范

    阮一峰Module 的语法 1.概述 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来. 在 ES6 之前,社区制定了一些 ...

  3. app页面连接到服务器的数据库

    第一步在服务器上写好servlet用于和数据库交互,目前我只写了添加. 第二步app端使用HttpURLConnection连接交互. 效果图: 增加了一条数据:第十一条

  4. java课程之团队开发冲刺阶段2.1

    一.总结昨天任务 1.由于使用的模拟器,自己没有安卓手机,所以在制作手机静音功能的时候有一些麻烦 2.功能没有完成 二.遇到的困难 1.安卓手机的静音功能分为五个部分的静音,需要每个都要静音 2.当在 ...

  5. 四、SAP中转义字符的使用和不同数据类型所占长度不同

    一.代码如下: 效果如下,注意看,数字类型占用了10个位置:

  6. php添加openssl扩展

    很多时候都会用到openssl组件,下面就介绍一下linux下php安装openssl扩展: 安 装openssl组件,一般php安装目录中都有许多扩展组件的安装包,当然也包括openssl,例如我的 ...

  7. C# 直接使用sql语句对数据库操作 (cmd.ExecuteNonQuery)

    只介绍读和删 不管使用什么方法来对数据库进行操作都绕不开和数据库的连接问题,所以咱们先在App.config中添加连接字段 <connectionStrings> <add name ...

  8. 201771010123汪慧和《面向对象程序设计Java》第十六周实验总结

    一.理论部分 1.程序与进程的概念 ‐程序是一段静态的代码,它是应用程序执行的蓝本. ‐进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程. ‐操作系统为每个进程分配一段独立的 ...

  9. Java算法练习——寻找两个有序数组的中位数

    题目链接 题目描述 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 $O(log(m + n))$. 你可以假设 nu ...

  10. C++优先队列详解

    转自csdn的文章,仅作为学习笔记.原文链接:https://blog.csdn.net/weixin_36888577/article/details/79937886 普通的队列是一种先进先出的数 ...