JS感悟

来源:互联网 发布:lstm python实现 编辑:程序博客网 时间:2024/06/06 08:57

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); //-22alert(a*b); //408alert(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
匈牙利命名法: 

  1. 以类型前缀开头
  2. 首字母大写


<pre style="position: fixed; left: -1000px;">a='12';b=34;alert(a+b); //'1234'alert(a-b); //-22alert(a*b); //408alert(a/b); //0.35...

a='12';b=34;alert(a+b); //'1234'alert(a-b); //-22alert(a*b); //408alert(a/b); //0.35...

运算符:

  1. 算术运算符
  2. 比较运算符




















































 

0 0