JavaScript讲义(一)

运行JS:使用<script.../>,或者javascript:前缀构建执行JS代码的URL。
方法二的示例:<a href="javascript:alert('lvwenjun');"/>运行示例</a>

导入JS文件:可以单独保存为一个.js文件,HTML页面导入该文件即可。

数据类型和变量:
-----------------------
虽然JS是弱类型语言,但也有变量声明,作用域(局部和全局)。
定义变量的方式:隐式(直接给变量赋值);显式(用var)。
示例:var a; a = true; //声明时变量可以没有初始值,声明的数据类型不确定。赋值后,数据类型才确定,后续也可以随意更改。

类型转换:
示例:
var a="3.145";
var b=a-2;
var c=a+2;
结果是:b=1.145, c="3.1452";//因为字符串不支持减法,所以自动将字符串转换成整数。
自动类型转换虽然方便,但程序可读性差。比如有时我们希望让字符串和数值执行加法,就需要用强制类型转换:toString(),parseInt(),parseFloat()。

变量:
作用域,与java,C语言不同的是,JS的变量没有块范围。
var scope="全局变量";
function test()
{
document.writeln(scope+"<br />");
var scope="局部变量";
document.writeln(scope+"<br />");
}
输出结果:undefined;局部变量 //因为JS变量没有块范围,在函数内用了var定义了scope,系统会强制定义一个新变量,这个新定义的局部变量就覆盖了全局变量;如果去掉这个var,那输出结果将变为:全局变量;局部变量


基本数据类型
---------------------------
数值类型:
JS变量的数据类型是解释时动态决定的。它有5中基本数据类型:数值,布尔,字符串,undefined(确定一个已经创建但没有初值的变量),null(表明某个变量值为空)
两个Infinity的值总是相等的。JS的算数运算符允许除数为0(除数和被除数可同时为0,结果为NaN),正数除以0结果是Infinity,负数除以0结果是-Infinity。

NaN是一个特殊数值,Not a Number,表示非数。NaN与Infinity不同,NaN不会与任何数值变量相等,也就是NaN==NaN也返回false.需要专门的isNaN()函数判断某个变量是否为NaN。

判断两个浮点数是否相等,通过判断两个浮点型变量的差值小于一个足够小的数即可。

字符串类型:
JS没有字符类型,或者说字符类型和字符串类型相同。
与Java相比:JS字符串可以用单引号;JS比较两个字符串是否相等用==即可,不需要equals().
indexOf:搜索目标字符串出现的位置,lastIndexOf:搜索目标字符串最后一次出现的位置。如果没有搜到,返回-1.
slice(3,-1):取得第4个(包括)到倒数第1个(不包括)的子串
match(),search()都用正则表达式作为子串:前者返回匹配的子字符串,后者返回匹配的索引值。
示例:var s = "abfd--abc@d.comcdefg";
a=s.search(/[a-z]+@d.[a-zA-Z]{2}m/)
var str="1dfd2dfs3df5";
var b=str.match(/\d/g);

undefined和null:

原文地址:https://www.cnblogs.com/jinji/p/5995282.html