自定义View系列教程00–推翻自己和过往,重学自定义View
自定义View系列教程01–常用工具介绍
自定义View系列教程02–onMeasure源码详尽分析
自定义View系列教程03–onLayout源码详尽分析
自定义View系列教程04–Draw源码分析及其实践
自定义View系列教程05–示例分析
自定义View系列教程06–详解View的Touch事件处理
自定义View系列教程07–详解ViewGroup分发Touch事件
自定义View系列教程08–滑动冲突的产生及其处理
探索Android软键盘的疑难杂症
深入探讨Android异步精髓Handler
详解Android主流框架不可或缺的基石
站在源码的肩膀上全解Scroller工作机制
Android多分辨率适配框架(1)— 核心基础
Android多分辨率适配框架(2)— 原理剖析
Android多分辨率适配框架(3)— 使用指南
变量的定义
在JavaScript中可通过var关键字定义声明变量,比如:
var name;
在此定义,一个变量叫name
变量的赋值
在JavaScript中可通过"="为变量赋值,比如:
var name;
name=“谷哥的小弟”
当然,也可以在定义变量的同时为其赋值,比如:
var name=“谷哥的小弟”;
变量的命名规范
我们先来看一个例子:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量title>
head>
<body>
<script type="text/javascript">
var name="谷哥的小弟";
function testName(){
document.writeln("name="+name);
document.writeln("
");
var name="有心课堂";
document.writeln("name="+name);
}
testName();
script>
body>
html>
在运行之前,我们来预测一下打印的结果:
name=谷哥的小弟
name=有心课堂
嗯哼,来跑一下代码,验证我们的预测,结果如下:
哇哈,居然和我们想的不一样!!!第一次输出的name值竟然是undefined!!!这是为什么呢???这就是JavaScript的变量提升:变量的声明总会被解释器提升到函数体的顶部!所以,刚才这段代码,它实际上等同于如下形式:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量title>
head>
<body>
<script type="text/javascript">
var name="谷哥的小弟";
function testName(){
var name;
document.writeln("name="+name);
document.writeln("
");
name="有心课堂";
document.writeln("name="+name);
}
testName();
script>
body>
html>
看到这,我们可能就好明白多了:
这就是JavaScript的变量提升,它会提升变量的声明部分至函数体的顶部!
之前,我们都是用var来声明变量。但是,在JavaScript中采用var定义的变量没有块作用域。请看如下示例:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>变量title>
head>
<body>
<script type="text/javascript">
function printNumber(){
for(var k=0;k<5;k++){
document.write(k);
}
document.write("
");
document.write("k="+k);
}
printNumber();
script>
body>
html>
在该示例中,我们在for循环中利用var声明了变量k;然后在for循环中和for循环结束之后都输入k的值,输出结果如下:
嗯哼,看到了吧——for循环都已经结束了,依然可以打印出k的值。这正是因为:var定义的变量没有块作用域。那怎么办呢?在此可以用let来声明k变量即可解决该问题。这也是,JavaScript中引入let类型变量的主要目的:弥补var的缺陷,把变量的作用域限制在块级
在JavaScript中采用const定义常量,并在初始化时为其指定初始值;此后不允许修改常量值。例如:
const NUMBER=9527;