JS基础教程1
Javascript的组成:
- ECMAScript: 解释器 翻译 无兼容性问题
- DOM: Document Object Model ----- 把文档或网页变成可以操作的对象 e.g. document. 大部分兼容
- BOM Browser Object Model ----- 操作浏览器的能力 (打印,复制到剪切板) e.g. window. 几乎完全不兼容
变量的类型:
变量像个容器,存入什么类型的值它就会变成什么类型.
1.number:
在JS中,数字类型不区分 int , float , double... 只有number.
var a=12;
alert(typeof a); //number
2. string:
var a='abc';
alert(typeof a); //string
3. boolean:
var a=true;
alert(typeof a); //boolean
4-1.undefined:
未定义的变量其类型为undefined.
alert(typeof b); //undefined
4-2.undefined:定义但未赋值的变量其类型为undefined
var b;
alert(typeof b); //undefined
5. function:a=function ()
{
alert('abc');
}
alert(typeof a); //function
6-1. object:
对象是由 number,string,boolean,undefined这些最基本的元素组成的.
window.onload=function ()
{
a=document.getElementById('div1');
alert(typeof a); //object
}
6-2. object:数组也是有多种基本类型组成的,所以也属于object
var a=[1,2,3,4];
alert(typeof a); //object
显式类型转换:
parseInt() //从字符串中提取整数. 相当于从左往右遍历,遇到第一个不是数字的字符为止.var a='123px';
alert(parseInt(a)); //123
var a='123.6px';
alert(parseInt(a)); //123
NaN //Not a Number. var a='abc';
alert(parseInt(a)); //NaN
parseFloat() //从字符串中提取浮点数.
var a='123.67.89px';
alert(parseFloat(a)); //123.67
NaN与其他数值比较永远不相等,包括它自己.
var a=parseInt('abc');
var b=parseInt('abc');
alert(a==b); //false
isNaN() //用于检测是不是NaN, 返回true或false.
var a=parseInt('abc');
alert(isNaN(a)); //true
var a=parseInt('12abc');
alert(isNaN(a)); /false
隐式类型转换:
== 先做类型转换再比较. 或者理解成不考虑类型的比较.
a='12';
b=12;
alert(a==b); //true ==是先做类型转换再比较. 或者理解成不考虑类型的比较.
alert(a===b); //false ===是不做类型转换的比较. 或者理解成类型和值军饷等.
- * / 也可以做隐式类型转换. 但+ 不能,因为+数学上的加运算,或者字符串连接.
a='12';
b=34;
alert(a+b); //'1234'
alert(a-b); //-22
alert(a*b); //408
alert(a/b); //0.35...
变量作用域
a 为局部变量,只能在所在函数中起作用,就好像一个班长,出了这个班什么都不是...
b 为全局变量,在所有函数内均有定义.
var b=13;
function aaa ()
{
var a=12;
}
function bbb ()
{
alert(a);
alert(b);
}
aaa();
bbb(); //a未定义 //13
闭包:
父函数和子函数之间可以共用变量
function aaa() <span style="color:#FF6666;">//父函数</span>
{
var a=12;
function bbb() <span style="color:#FF6666;">//子函数</span>
{
var b=13;
alert(a);
}
bbb();
alert(b);
}
aaa(); //12 //13
变量的命名规范:
<pre style="position: fixed; left: -1000px;">var b=13;
function aaa ()
{
var a=12;
}
function bbb ()
{
alert(a);
alert(b);
}
aaa();
bbb(); //a
var b=13; function aaa () { var a=12; } function bbb () { alert(a); alert(b); } aaa(); bbb(); //a匈牙利命名法:
- 以类型前缀开头
- 首字母大写
<pre style="position: fixed; left: -1000px;">a='12';
b=34;
alert(a+b); //'1234'
alert(a-b); //-22
alert(a*b); //408
alert(a/b); //0.35...
a='12'; b=34; alert(a+b); //'1234' alert(a-b); //-22 alert(a*b); //408 alert(a/b); //0.35...
运算符:
- 算术运算符
- 比较运算符