目录

  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. HashSet与HashMap源代码深度剖析

    HashSet源码分析: 先来看一下它的构造方法: 呃~~居然它的底层是用HashMap来实现的,颠覆三观,那它究竟是如何来用的呢?继续来往下跟: 对于HashSet而言是没有key->valu ...

  2. html5测试

    HTML5测试一 1. 问题:HTML5 之前的 HTML 版本是什么? A.HTML 4.01 B.HTML 4 C.HTML 4.1 D.HTML 4.9 答案:A HTML5 是 HTML 最新 ...

  3. Python numpy.ZIP 安装问题

    今天在python上安装numpy,按照网上教程,安装pip,然后命令行直接:pip install numpy  .但是一直因为资源问题下载失败. 后来下载了一个numpy-1.11.2.zip 安 ...

  4. 02 Vue介绍与安装,指令系统 v-*、音乐播放器

    VUE文档 https://cn.vuejs.org/v2/guide/ 1.vue的介绍 尤雨溪 1.vue的优点 2.vue的介绍 3.vue的安装 4.声明式渲染 <body> &l ...

  5. [Angular 8] Take away: Web Components with Angular Elements: Beyond the Basics

    This post is based on the NG-CONF talk, check the talk by yourself. 1. Dynamiclly add Angular Elemen ...

  6. for 循环用了那么多次,但你真的了解它么?

    其实我们写代码的时候一直都在使用for循环,但是偶尔还是会纠结用哪一个循环. 一.基础的for循环 0.使用while也是一种循环方式,此处探究for相关的循环,就不做拓展了. 1.遍历数组的时候,初 ...

  7. 与word、excel交互问题总结

    不同版本的Office对应的型号不同,往往问题出现在注册表中有多个版本,所以程序运行经常提示错误. 1.找不到引用microsoft.office.core解决办法 (引用中有感叹号,说明引用不成功) ...

  8. 2019牛客暑期多校训练营(第一场)H 线性基+计算贡献

    题意 给n个整数,求满足子集异或和为0的子集大小之和. 分析 将问题转化为求每个元素的贡献次数之和. 先对n个数求线性基,设线性基大小为r,即插入线性基的数字个数为r,可以分别计算线性基内数的贡献和线 ...

  9. FTP服务器安装配置

    1.安装:yum install vsftpd -y 2.修改配置文件:cd /etc/vsftpd/ cat vsftpd.conf | grep -Ev '^$|^#' listen_port= ...

  10. Sql Server 基本使用

    一.登录sql server数据库 1.若需要连接本机数据库服务器,服务器名可以采用“local”.“.”“本机Ip”. 2.在连接sql server 之前,确保sql server服务已经启动,如 ...