目录

  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. python读取txt文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte sequence

    python读取文件时报错UnicodeDecodeError: 'gbk' codec can't decode byte 0x8e in position 8: illegal multibyte ...

  2. 在RecyclerView中集成QQ汽泡一

    上次已经实现了QQ汽泡的自定义View的效果[http://www.cnblogs.com/webor2006/p/7726174.html],接着再将它应用到列表当中,这样才算得上跟QQ的效果匹配, ...

  3. 【NOIP2012】同余方程

    原题: 求关于xx的同余方程ax≡1(mod b)的最小正整数解. 裸题 当年被这题劝退,现在老子终于学会exgcd了哈哈哈哈哈哈哈哈 ax≡1(mod b) => ax=1+by => ...

  4. 201871010105-曹玉中《面向对象程序设计(java)》第十七周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第十七周学习总结 项目 内容 这个作业属于哪个过程 https://www.cnblogs.com/nwnu-daizh/ ...

  5. Oracle 查询对应表所有字段名称,可排除不想要的字段

    由于Oracle varchar类型长度限制为4000 ,以下方法仅支持查询字段拼接后长度小于等于4000 第一种方法 select wm_concat(column_name) from user_ ...

  6. CentOS 安装oracle client

    下载Oracle Client 1.通过下载地址下载 下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x8 ...

  7. C# 学习笔记第一天

    1.  2000年开发出C#,2002年传入中国 2.   .NET  两部分 (1). .NET 平台               好比是厨房 (2)  .netframework 框架       ...

  8. IO—转换流和键盘录入

    简单来说,由于方法的局限性和功能的需要,特此产生了转换流. InputStreamReader是字节流转换字符流的桥梁,为了提高效率,可以在缓冲区中放入转化流的对象,,并且构造函数第二个参数可以传入一 ...

  9. Linux帮助文档

    Linux当中有许多命令: 在Linux中提供了详细的帮组文档,利用好可以提高使用效率:   1.help参数 大多数命令都可以使用 -h 或 --help 参数来获取该命令的使用方法.参数等信息: ...

  10. .net大文件传输断点续传源码

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...