一. javascript构成

1.javascript实现由三部分组成:

ECMAScript:核心语言功能

DOM:文档对象模型,提供访问和操作网页内容的方法和接口

BOM:浏览器对象模型,提供与浏览器交互的方法和接口。

2. ECMAScript宿主环境:浏览器、Node、Adobe Flash.

二. 在HTML中引入javascript

1.<script>标签:language属性已经废弃,一般使用type="text/javascript";

2.不要再代码中出现</script>,如果需要的话用“<\/script>”;

<script type="text/javascript">
function test()
{
//alert("</script>");//×
alert("<\/script>");//√
}
test();

</script>js代码一般放在body中内容的最后,例如<body>...........<script>....</script></body>

3.<noscript>:当浏览器不支持脚本或者脚本被禁用时才会显示<noscript>标签中的内容。

例如:<noscript> 您的浏览器不支持javascript或者已被禁用。 </noscript>

三.基本数据类型

基本数据类型有:null,undefined,string,number,boolean。几点说明:

1. null值表示一个空指针引用,所以typeof null返回结果是object。如果定义一个变量是用来保存引用类型,那最好初始化为null。

2. toString() 转换为字符串:

toString():一般不带参数调用即可,但是null和undefined没有这个方法。

toString()指定基数,可以返回指定进制的字符串。例如:

var n=10;
n.toString(2);//"1010"
n.toString(4);//"22"

3.String()转换为字符串:可以将任意类型的值转换为字符串形式。转换规则如下:

如果变量有toString()方法,则调用toString()方法;

如果变量为null,则返回"null";

如果变量为undefined,则返回"undefined"。

var a=10,b,c=true,d=null,e=new Object();
console.log(String(a));//'10'
console.log(String(b));//'undefined'
console.log(String(c));//'true'
console.log(String(d));//'null'
console.log(String(e));//'[object Object]'

四.函数-function

1.函数参数

ECMAScript中的参数是用类似数组的对象来表示的,可以使用arguments对象来访问每一个参数。例如,arguments[0]表示第一个参数,arguments.length表示传进来的参数个数。不过arguments其实并不是Array的实例。

function add(a,b,c){
console.log(arguments instanceof Array); //false
console.log("args number:"+arguments.length);
if(arguments.length>=3){
return a+b+c;
}else if(arguments.length==2){
return a+b;
}else{
return a;
}
}
add(1);//
add(1,2)//
add(1,2,3);//
add(1,2,3,4,5);//

ECMAScript中的函数不能重载,但是通过这种方式也可以实现传递可变个数的参数来实现类似功能。

2. 没有传递值得命名参数会自动赋予undefined。

function add(a,b){
return b;
}
add(1);//undefined
add(1,2)//

3. arguments与命名参数

如果在函数体中修改arguments的值,那么对应的命名参数也跟着发生变化。

function add(a,b){
arguments[1]=10;
if(arguments.length>=2){
return a+b;
}else{
return a;
}
}
add(1);//
add(1,2)//

要注意arguments对象的长度是由调用时实际传入的参数个数决定的,而不是定义时的命名参数个数决定的。例如在上例的在add(1)调用时,只传入了一个参数,对arguments[1]的修改并不会生效。

4. 传递参数

函数的参数是按值传递的。当传递基本类型时,被传递的值被赋给一个局部变量,函数内部的修改不会影响函数外部的变量;当传递引用类型时,会把这个值在内存中的位置赋给局部变量,函数内部的修改会对函数外部有所影响。

//基本类型
function test(a){
a=100;
return a;
}
var m=1;
var result=test(m);
console.log(m);//
console.log(result);// //引用类型
function test(a){
a.name='tom';
return a;
}
var m=new Object();
m.name='peter';
var result=test(m);
console.log(m.name);//tom
console.log(result.name);//tom

最新文章

  1. Eclipce结合Ant进行编译、打包、传输、运行
  2. validate插件深入学习-04自定义验证方法
  3. django pdb
  4. C++类型转化分析(1)
  5. php浮点数计算问题
  6. 数据存储之SQLite
  7. item30,最小的k个数
  8. WCF、WebAPI、WCF REST、Web Service之间的区别
  9. java编程常用技术
  10. 杭电 HDU ACM Milk
  11. 分享一个自己写的基于JQuery的一个Web背景切换的Demo
  12. 转:HTML与URL两种录制模式分析
  13. bzoj1150 [CTSC2007]数据备份Backup 双向链表+堆
  14. 【BZOJ1835】【ZJOI2010】基站选址
  15. No X11 DISPLAY variable was set
  16. ecmall 学习记录2
  17. 1.1.15 word调整文字与下划线之间的间距
  18. 转载 【.NET基础】--委托、事件、线程(1) https://www.cnblogs.com/chengzish/p/4559268.html
  19. Oracle 11.2.0.4.0 Dataguard部署和日常维护(7) - Dataguard Flashback篇
  20. Javascript eval()函数 基础回顾

热门文章

  1. iOS,html使用交互相关
  2. WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享
  3. .Net 中HashTable,HashMap 和 Dictionary&lt;key,value&gt; 和List&lt;T&gt;和DataTable的比较
  4. iOS开发Hessian
  5. Frag(匹配跟踪)
  6. 【转】PowerShell入门(序):为什么需要PowerShell?
  7. WebService处理大数据量数据
  8. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
  9. php,js清除cookie
  10. 如何在Linux中查看所有正在运行的进程