JavaScript组成

230 阅读2分钟

JavaScript组成

ECMAScript(核心):解释器,翻译 几乎没有兼容性问题

DOM:Document【html文档】 Object Model 赋予js操作html的能力 有一些操作不兼容

BOM:Browser Object Model 没有兼容问题(完全不兼容)

typeof运算符 返回变量类型
常见类型:number、string、boolean、undefined、object、function
一个变量应该只存放一种类型的数据

var a=12;
alert(typeof a); //number

a='abcdef'
alert(typeof a); //string

a=true
alert(typeof a); //boolean

a=function()
{
    alert('abcd');
}
alert(typeof a); //function

a=document
alert(typeof a); //object

alert(typeof b); //undefined
var b;
alert(typeof b); //undefined
//出现undefined情况
//1.确实是没定义
//2.定义但未给值

显式类型转换(强制类型转换)

parseInt:字符串转数字

parseFloat:字符串转小数

isNaN:检测结果是否为NaN

var a='abcd'alert(parseInt(a));
//NaN Not a Number 非数字
//任何数+NaN都等于NaN
var a=parseInt('abcd')
var b=parseInt('wxyz')
alert(a==b)       //结果:False
// NaN 和 NaN 并不相等

隐式类型转换

var a=5;
var b='5';
alert(a==b)        //true      先转换类型,再比较
alert(a===b).      //false     不转换类型,直接比较

var a=12;
var b='5';
alert(a+b);        //结果:125   +含义:1.字符串连接 2.数字相加
alert(a-b);        //结果:7     —含义:只有数字相减
//计算机优先挑选简单的执行

作用域

局部变量和全局变量

var a;      //全局变量,在任何地方都能用

function show()
{
    var a=12;    //局部变量;只能在定义它的函数里边使用
}

闭包

闭包:子函数可以使用父函数的局部变量

function aaa()         //父函数
{
    var a=12;
    function bbb()     //子函数
    {
        alert(a);
    }
    bbb()
}
//结果:12

js命名规范

1.可读性--能看懂
2.规范性--符合规则
匈牙利命名法
1.类型前缀

类型前缀类型实例
数组aArrayaItems
布尔值bBooleanbIsComplete
浮点数fFloatfPrice
函数fnFunctionfnHandler
整数iIntegeriItemCount
对象oObjectoDiv1
正则表达式reRegExpreEmailcheck
字符串sStringsUserName
变体变量vVariantvAnything

2.首字母大写
每个单词的首字母都大写