JS:在浏览器端执行的脚本语言,能够在浏览器中执行一些简单的运算、判断
2)弱类型语言
3)声明变量用var
4)字符串用单引号--推荐 html-->双引号,JavaScript-->单引号
5)每句话后面用分号
6)注释 推荐使用单行注释,多行注释中如果包含正则表达式可能会出问题
<!-- -->是html的注释
方法3:在html代码中出现的js代码οnclick=f1(),不推荐
只有object是引用类型,其他都是值类型
Undefined类型,Null类型都是只有一个值的数据类型,分别为undefined与null
查看变量类型用typeof(变量)
instanceof用来判断某个对象属于哪种类型 alert(nowTime instanceof Object) -- true
只是声明了,但没赋值,那么变量的类型和值都是undefined
方法没有明确返回值时,返回值是一个undefined
变量A==变量B 不严格等号 判断A和B转换为boolean类型后是否相同(任何类型都可以转换为boolean类型)
变量A===变量B 严格等号 先判断类型是否一致;再判断值是否一致 switch判断时,是“全等于” ===
//判断变量是否可用
var n
if(typeof(n)!= undefined&&typeof(n)!=null){
//可以使用
}else{
//不可以使用
}
而如果是在函数function()内定义的变量,由于函数调用后就会释放掉,在块外可能不能使用
JavaScript中字符串同样需要转义字符‘\’,与C#一样
JS中不识别@符号
parseFloat() 将指定的字符串,转换成浮点数
Number() 把给定的值(任意类型)转换成数字(可以是整数或浮点数);
转换的是整个值,而不是部分值。如果该字符串不能完全转换为整数,则返回NaN
isNaN() 判断是否为一个非数字?
var n = '90.3fdsds';
if(isNaN(Number(n))){//不是数字开始执行}
String() 把指定的值(任意类型)转换成字符串
Boolean() 把给定的值(任意类型)转换成Boolean类型
(*)eval(codeString) 将一段字符串的js代码,计算并执行;类似于动态SQL语句
方法2:VS中进行调试 不方便
IE DebuggerBar
FireFox FireBug
Chrome 开发人员工具 --> Console
高版本浏览器下可以使用console log('内容');来输出内容
9. arguments对象--动态为方法传递参数,类似于.net中的params关键字的作用
arguments.length以及arguments[i]
js中没有方法的重载,也没有可变参数
return后面是返回值的内容
命名函数(与匿名对象相对应)在调用之前就已经确定了,就是最后的一个重名函数
用匿名函数省得定义一个用一次就不用的函数,而且避免了命名冲突的问题
JS中没有命名空间的概念,因此很容易函数名字冲突。命名冲突以最后声明为准
第一种:-->使用最多
var f1 = function(p1,p2){return p1+p2;}; //将函数赋值给一个变量 其中f1()是方法
alert(f1(1,3));
匿名函数没法调用,只能赋值给一个变量,由于是赋值语句,后面要加分号
document.getElementById('btnOne').onclick = function(){}
第二种:
(function (n1, n2) {
alert(n1 + n2);
})(2, 3);
第三种:
var m1 = new Function("p1", "p2", "p3", "return p1+p2+p3");
alert(m1(1, 2, 3));
javascript基本组成
基本语法 Dom(文档对象模型) Bom(浏览器对象)1. JavaScript语法概述
1)大小写敏感2)弱类型语言
3)声明变量用var
4)字符串用单引号--推荐 html-->双引号,JavaScript-->单引号
5)每句话后面用分号
6)注释 推荐使用单行注释,多行注释中如果包含正则表达式可能会出问题
<!-- -->是html的注释
2. 按钮显示时间案例
方法1:
<body>
<input type="button" id="btnOne" name="btn" value="显示时间" οnclick="alert(new Date().toLocaleDateString())">
</body>
方法2:
//页面加载完 再执行
window.onload = function () {
document.getElementById("btnOne").onclick = function () {
alert(new Date().toLocaleDateString());
};
};
方法3:在html代码中出现的js代码οnclick=f1(),不推荐
function f1() {
alert(new Date().toLocaleDateString());
}
<body>
<!--如果在标签中直接让事件执行什么方法,必须加括号-->
<input type="button" id="btnOne" name="btn" value="显示时间" οnclick="f1()" /><!--方法1--οnclick="alert(new Date().toLocaleDateString())"-->
</body>
3. 超链接显示时间
<body>
<a href="#" οnclick="alert(new Date().toLocaleDateString())">显示时间1</a>
<a href="javascript:void(0)" οnclick="alert(new Date().toLocaleDateString())">显示时间2</a>
<a href="javascript:alert(new Date().toLocaleDateString())">显示时间3</a>
</body>
4. 数据类型
JS中的数据类型 六种 bool number string undefined null object只有object是引用类型,其他都是值类型
Undefined类型,Null类型都是只有一个值的数据类型,分别为undefined与null
查看变量类型用typeof(变量)
instanceof用来判断某个对象属于哪种类型 alert(nowTime instanceof Object) -- true
只是声明了,但没赋值,那么变量的类型和值都是undefined
方法没有明确返回值时,返回值是一个undefined
变量A==变量B 不严格等号 判断A和B转换为boolean类型后是否相同(任何类型都可以转换为boolean类型)
变量A===变量B 严格等号 先判断类型是否一致;再判断值是否一致 switch判断时,是“全等于” ===
//判断变量是否可用
var n
if(typeof(n)!= undefined&&typeof(n)!=null){
//可以使用
}else{
//不可以使用
}
5. 变量作用域
js中没有块级作用域,比如说if()或for()这些块中定义的变量,在块外仍可以使用而如果是在函数function()内定义的变量,由于函数调用后就会释放掉,在块外可能不能使用
JavaScript中字符串同样需要转义字符‘\’,与C#一样
JS中不识别@符号
6. 类型转换
parseInt() 将指定的字符串,转换成整数。如果是数字+字母,会自动忽略掉字母parseFloat() 将指定的字符串,转换成浮点数
Number() 把给定的值(任意类型)转换成数字(可以是整数或浮点数);
转换的是整个值,而不是部分值。如果该字符串不能完全转换为整数,则返回NaN
isNaN() 判断是否为一个非数字?
var n = '90.3fdsds';
if(isNaN(Number(n))){//不是数字开始执行}
String() 把指定的值(任意类型)转换成字符串
Boolean() 把给定的值(任意类型)转换成Boolean类型
(*)eval(codeString) 将一段字符串的js代码,计算并执行;类似于动态SQL语句
7. JS除错与调试
方法1:IE f12 开发人员工具 加断点 F11单步执行方法2:VS中进行调试 不方便
IE DebuggerBar
FireFox FireBug
Chrome 开发人员工具 --> Console
高版本浏览器下可以使用console log('内容');来输出内容
8. 方法
js中的方法没有访问修饰符,没有返回值类型,只有方法名([参数列表])9. arguments对象--动态为方法传递参数,类似于.net中的params关键字的作用
arguments.length以及arguments[i]
js中没有方法的重载,也没有可变参数
function f1(){
var sum = 0;
alert(arguments.length); //获得这个方法传了几个参数
for(var i=0;i<arguments.length;i++){ //点不出来
sum += arguments[i];
}
return sum;
}
return后面是返回值的内容
命名函数(与匿名对象相对应)在调用之前就已经确定了,就是最后的一个重名函数
10. 匿名函数
类似于C#中的匿名函数,这种匿名函数的用法在jQuery中非常多用匿名函数省得定义一个用一次就不用的函数,而且避免了命名冲突的问题
JS中没有命名空间的概念,因此很容易函数名字冲突。命名冲突以最后声明为准
第一种:-->使用最多
var f1 = function(p1,p2){return p1+p2;}; //将函数赋值给一个变量 其中f1()是方法
alert(f1(1,3));
匿名函数没法调用,只能赋值给一个变量,由于是赋值语句,后面要加分号
document.getElementById('btnOne').onclick = function(){}
第二种:
(function (n1, n2) {
alert(n1 + n2);
})(2, 3);
第三种:
var m1 = new Function("p1", "p2", "p3", "return p1+p2+p3");
alert(m1(1, 2, 3));