讲给Android程序员看的前端教程(24)——变量

自定义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)— 使用指南


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl
  • 本文视频教程:http://www.stay4it.com/my/course/37

变量基础知识

变量的定义

在JavaScript中可通过var关键字定义声明变量,比如:

var name;

在此定义,一个变量叫name

变量的赋值

在JavaScript中可通过"="为变量赋值,比如:

var name;
name=“谷哥的小弟”

当然,也可以在定义变量的同时为其赋值,比如:

var name=“谷哥的小弟”;

变量的命名规范

  • 变量名中不能含有空格
  • 请注意JavaScript严格区分字母大小写,所以var A和var a是不同的变量
  • 请勿使用纯数字或者以数字开头定义变量
  • 不建议使用汉字定义变量
  • 请勿使用纯特殊字符定义变量
  • 请勿使用特殊字符开头("_"除外)定义变量
  • 请勿使用关键字定义变量;比如var、try、void 等
  • 不建议使用保留字定义变量;比如byte、char、import等

变量提升

我们先来看一个例子:


<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=有心课堂

嗯哼,来跑一下代码,验证我们的预测,结果如下:

讲给Android程序员看的前端教程(24)——变量_第1张图片

哇哈,居然和我们想的不一样!!!第一次输出的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>

看到这,我们可能就好明白多了:

  • 在方法testName( )中声明了局部变量name;请参见代码第11行
  • 该局部变量覆盖了全局变量name;请参见代码第11行
  • 为局部变量name赋值;请参见代码第14行

这就是JavaScript的变量提升,它会提升变量的声明部分至函数体的顶部!


let变量

之前,我们都是用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的值,输出结果如下:

讲给Android程序员看的前端教程(24)——变量_第2张图片

嗯哼,看到了吧——for循环都已经结束了,依然可以打印出k的值。这正是因为:var定义的变量没有块作用域。那怎么办呢?在此可以用let来声明k变量即可解决该问题。这也是,JavaScript中引入let类型变量的主要目的:弥补var的缺陷,把变量的作用域限制在块级


const

在JavaScript中采用const定义常量,并在初始化时为其指定初始值;此后不允许修改常量值。例如:

const NUMBER=9527;

你可能感兴趣的:(讲给Android程序员看的前端教程(24)——变量)