目录

  1. 输出
  2. 全局变量
  3. 字符串
  4. 类型及转换
  5. 变量提升
  6. 严格模式
  7. 表单验证

(1) 输出

 <!DOCTYPE html>
<html>
<body>
<p>JavaScript输出</p>
<script>
// 使用window.alert()弹出警告框
window.alert(5+6);
// 使用document.write()方法将内容写到HTML文档中
document.write(Date());
// 注意:如果在文档已完成加载后执行document.write,整个HTML页面将被覆盖
function demo2Click() {
document.write("Override!");
}
// 使用innerHTML写入到HTML元素
document.getElementById("demo1").innerHTML = "add demo1 text";
// 使用console.log()写入到浏览器的控制台
console.log("warn log");
</script>
<div id="demo1"></div>
<button id="demo2" onclick="demo2Click();">demo2</button>
</body>
</html>

(2) 全局变量

 <!DOCTYPE html>
<html>
<body>
<p>变量</p>
<p id="demo1"></p>
<script>
// 在HTML中,所有全局变量都会成为window变量
// 全局变量或函数,可以覆盖window对象的变量或者函数;局部变量,包括window对象可以覆盖全局变量和函数
myFunction();
document.getElementById("demo1").innerHTML = 'I can show ' + window.carName;
function myFunction() {
carName = "Volvo";
}
</script>
</body>
</html>

(3) 字符串

 <!DOCTYPE html>
<html>
<body>
<p>字符串</p>
<p id="demo1"></p>
<script>
// 转义字符使用[\]
// 其他的转义字符有:[\']单引号;[\\]反斜杠;[\n]换行;[\r]回车;[\t]制表符;[\b]退格符;[\f]换页符
var demo1 = "He is called \"Tom\".";
// 使用位置(索引)可以访问字符串中任何的字符
console.log(demo1[8]); // output: a
// 获取字符串长度
console.log(demo1.length); // output: 19
// 定位字符串中某一个指定的字符首次出现的位置
console.log(demo1.indexOf('c')); // output: 6
console.log(demo1.indexOf("is")); // output: 3
// 查找字符串中特定的字符,并且如果找到的话,则返回这个字符
console.log(demo1.match("call")); // output: call
// 字符串中用某些字符替换另一些字符
console.log(demo1.replace("is", "was")); // output: He was called "Tom".
// 字符串大小写转换
console.log(demo1.toUpperCase()); // output: HE IS CALLED "TOM".
console.log(demo1.toLowerCase()); // output: he is called "tom".
// 字符串转为数组
console.log(demo1.split(" ").length); // output: 4
</script>
</body>
</html>

(4) 类型及转换

 <!DOCTYPE html>
<html>
<body>
<p>类型及转换</p>
<script>
// 使用typeof操作符来检测变量的数据类型
console.log(typeof "John"); // output: string
console.log(typeof 3.14); // output: number
console.log(typeof false); // output: boolean
console.log(typeof [1,2,3]); // output: object
console.log(typeof {id: 1, name: "john"}); // output: object
console.log(typeof null); // output: object
console.log(typeof undefined); // output: undefined
// 值为null(空), 但仍然是一个对象
// 任何变量都可以通过设置值为undefined来清空, 此时类型为undefined
var tmp1, tmp2 = null, tmp3 = undefined;
console.log(typeof tmp1); // output: undefined
console.log(typeof tmp2); // output: object
console.log(typeof tmp3); // output: undefined
// null和underfined的值相等,但类型不等
console.log(null == undefined); // output: true
console.log(null === undefined); // output: false // constructor 属性返回所有JavaScript变量的构造函数
console.log("John".constructor); // output: String() { [native code] }
console.log((3.14).constructor); // output: Number() { [native code] }
console.log(false.constructor); // output: Boolean() { [native code] }
console.log([1,2,3,4].constructor); // output: Array() { [native code] }
console.log({name:'John', age:34}.constructor); // output: Object() { [native code] }
console.log(new Date().constructor); // output: Date() { [native code] }
console.log(function () {}.constructor); // output: Function(){ [native code] }
// 可以使用constructor属性来查看是对象是否为某一类型
function isTheType(param, type) {
return param.constructor.toString().indexOf(type) > -1;
}
console.log(isTheType("John", "String")); // output: true // 转换为字符串
console.log(String(true)); // output: true
console.log(String(123)); // output: 123
console.log(String(NaN)); // output: NaN
console.log(String(null)); // output: null
console.log(String(undefined)); // output: undefined
console.log((false).toString()); // output: false
console.log((123).toString()); // output: 123
console.log((NaN).toString()); // output: NaN
// Illegal! console.log((null).toString());
// Illegal! console.log((undefined).toString()); // 转换为数字
console.log(Number("3.14")); // output: 3.14
console.log(Number(true)); // output: 1
console.log(Number(false)); // output: 0
console.log(Number("")); // output: 0
console.log(Number(" ")); // output: 0
console.log(Number("abc")); // output: NaN
console.log(Number("123abc")); // output: NaN
console.log(Number(new Date())); // output: 毫秒数
</script>
</body>
</html>

(5) 变量提升

变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

JavaScript 只有声明的变量会提升,初始化的不会

(6) 严格模式

严格模式下你不能使用未声明的变量

头部用"use strict"声明

(7) 表单验证

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function validateForm() {
// 获取form中某个字段的值
var x = document.forms["myForm"]["fname"].value;
if (x == null || x == "") {
alert("First name is request.");
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="www.baidu.com" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname" disabled="disabled">
<input type="submit" value="submit">
</form>
</body>
</html>

JavaScript(1):Base/Tips的更多相关文章

  1. JavaScript宝座:七大框架论剑

    JavaScript宝座:七大框架论剑 一周前,Throne of JS大会在多伦多召开,这应该是我参加过的最有料也最不一样的一次大会.大会官网如是说: 加载整个页面,然后再“渐进增强”以添加动态行为 ...

  2. 微信浏览器内置JavaScript 对象:WeixinJSBridge

    微信公众平台开发 微信公众平台开发模式 企业微信公众平台 微信浏览器 分享到朋友圈 发送给好友 分享到腾讯微博 作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/ ...

  3. JavaScript基础:数据类型的中的那些少见多怪

    原文:JavaScript基础:数据类型的中的那些少见多怪 Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean).2个特殊数据类型(undefi ...

  4. C# 中的关键字之:base、this 【转】

                                                                                 C# 中的关键字之:base.this. ba ...

  5. JavaScript -- 原型:prototype的使用

    JavaScript -- 原型:prototype的使用 在 JavaScript 中,prototype 是函数的一个属性,同时也是由构造函数创建的对象的一个属性. 函数的原型为对象. 它主要在函 ...

  6. JavaScript运算符:递增递减运算符前置和后置的区别

    从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...

  7. 配置iOS项目的设备系统目标设置:Base SDK和Deployment Target

    配置iOS项目的设备系统目标设置:Base SDK和Deployment Target Xcode为开发者提供了两个可配置的设置:第一个是Base SDK,第二个是iOS的Deployment Tar ...

  8. C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC View中获取action、controller、area名称、参数

    C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ...

  9. [翻译]Review——How JavaScript works:The building blocks of Web Workers

    原文地址:https://blog.sessionstack.com/how-javascript-works-the-building-blocks-of-web-workers-5-cases-w ...

随机推荐

  1. Can you answer these queries I SPOJ - GSS1 (线段树维护区间连续最大值/最大连续子段和)

    You are given a sequence A[1], A[2], ..., A[N] . ( |A[i]| ≤ 15007 , 1 ≤ N ≤ 50000 ). A query is defi ...

  2. libusb_transfer

    http://libusb.sourceforge.net/api-1.0/structlibusb__transfer.html int libusb_control_transfer(libusb ...

  3. usb发送字节

  4. 阿里云-docker安装rabbitmq及无法访问主页

    一.下载最新的rabbitmq docker pull rabbitmq 二.下载完以后启动容器 docker run -d -p 5672:5672 -p 15672:15672 --name my ...

  5. thymeleaf错误 org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 ‘&’ 后面

    在thymeleaf的js中使用&,<,>等符号时会产生这种问题,因为thymeleaf是采用xml解析的方式进行替换的,所以javascript中&这样的xml实体转义字 ...

  6. 方正科技win7重装系统

    1.制作装机版U盘启动盘 老毛桃装机版制作启动U盘教程 http://www.laomaotao.org/jiaocheng/92/upqdzz.html 2.下载系统镜像文件保存至U盘启动盘 MSD ...

  7. Q&A(一)

    1.四种常见的无监督式任务? 聚类.可视化.降维.关联规则学习 2.什么是核外学习? 核外算法可以处理计算机主内存无法应对的大量数据.它将数据分割成小批量,然后使用在线学习技术从这些小批量中学习. 3 ...

  8. tensorflow2.0编程规范

    背景 tensorflow2.0 相比于1.0 有很大变化,1.0版本的placeholder,Session都没有了,2.0版本强推使用keras.keras是一个比较高层的api,确实挺好用的,一 ...

  9. 关于.Net中Process和ProcessStartInfor的使用

    本文主要是介绍在.Net中System.Diagnostics命名空间下Process类和ProcessStartInfo类的使用 用于启动一个外部程序所使用的类是Process,至于ProcessS ...

  10. 编程中易犯错误汇总:一个综合案例.md

    # 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...