JavaScript 变量定义
语法:
var 变量名称(易于理解的命名)
命名规则变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号
变量命名长度应该尽可能的短,并抓住要点,尽量在变量名中体现出值的类型
禁止使用JavaScript关键词、保留字全名
变量名命名方法常见的有匈牙利命名法、驼峰命名法
命名方法介绍
1. 匈牙利命名:
开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。
int iMyAge; “i”是int类型的缩写;
2. 驼峰命名法
当变量名和函数名称是由二个或多个单字链接在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函数的可读性。
常用调试方法
建议使用火狐浏览器(快捷键F12),然后使用console.log()函数进行变量就调试内容的输出,其他常用方法:alert(),document.write(),并学会理解和掌握错误信息提示。
在函数中使用和不使用var的区别在函数作用域内 加var定义的变量是局部变量,不加var定义的就成了全局变量。
a = 1;
function test(){console.log(a);}//全局变量
function test2(){var a = 2; console.log(a);}//局部变量
test();
test2();
还需要注意的是:‘use strict’模式下,如果变量没有使用var定义,就会报错。
js变量类型
在JavaScript中,有5种基本数据类型和1种复杂数据类型。
基本数据类型有:Undefined, Null, Boolean, Number和String;
复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array, Function, Date等。
以下几个变量差不多包含了我们在实际编码中常用的类型。var num = 123;
var str = 'abcdef';
var bool = true;
var arr = [1, 2, 3, 4];
var json = {name:'wenzi', age:25};
var func = function(){ console.log('this is function'); }
var und = undefined;
var nul = null;
var date = new Date();
var reg = /^[a-zA-Z]{5,20}$/;
var error= new Error();
获取变量类型
使用js的typeof函数可以获取变量类型。typeof 2 输出 number
typeof null 输出 object
typeof {} 输出 object
typeof [] 输出 object
typeof (function(){}) 输出 function
typeof undefined 输出 undefined
typeof '222' 输出 string
typeof true 输出 boolean
object和函数类型 function我怎么去区分对象,数组和null呢?
接下来我们就用到另外一个利器:Object.prototype.toString.call
这是对象的一个原生原型扩展函数,用来更精确的区分数据类型。var gettype = Object.prototype.toString
gettype.call('aaaa') 输出 [object String]
gettype.call(2222) 输出 [object Number]
gettype.call(true) 输出 [object Boolean]
gettype.call(undefined) 输出 [object Undefined]
gettype.call(null) 输出 [object Null]
gettype.call({}) 输出 [object Object]
gettype.call([]) 输出 [object Array]
gettype.call(function(){}) 输出 [object Function]
其实js 里面还有好多具体类型,如:[object HTMLDivElement] div 对象,[object HTMLBodyElement] body 对象......各种dom节点对象,这些东西在我们写插件的时候都会用到。
如何学习内置函数
内置函数值js本身定义的函数,学习要领:功能、参数、返回值及其返回值类型!
如:
indexOf()函数
功能:返回某个指定的字符串值在字符串中首次出现的位置
参数:1、需要搜索的内容[必选] 2、可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
返回:整数类型,查找失败返回 -1,查找成功返回具体位置