WEB_JS学习笔记_基础
2015-01-23 01:18 一切尽在掌握 阅读(224) 评论(0) 编辑 收藏 举报1、JS和JAVA对比
JS是基于对象(调用浏览器内置对象的方法),java是面向对象
JS只需解释就可以由浏览器执行, java需要先编译成字节码文件再执行
js是弱类型(数据类型之间任意转换),java是强引用
js和java一样区分大小写
2、一个完整的JavaScrip由以下几部分组成
核心:ECMAScript
文档对象模型:DOM (内置两大内对象之一)
浏览器对象模型:BOM (内置两大内对象之一)
3、JS和Html结合方式
方式一:放置<scrip>标签:
<script type="text/javascript"> js code... </script>
缺点:这段js code 只能在该页面使用
方式二:将js代码封装到一个文件中,使用script标签的src属性引入一个js文件
<script src="test.js" type="text/javascript"></script>
优点:方便维护,便于扩展
注意:浏览器加载页面从上到下,加载到哪则运行到哪
例如:若加载的js文件比较大,又相对耗时,则可放在body标签的最后面,js为单线程
4、JS的5种基本变量类型和引用类型(typeof 引用类型 为Object)
string number boolean undefined null
typeof 用于判断 变量的数据类型 ,返回一个字符串
alert() -- 弹出一个警告框
5、js弱类型的转换
(1)显示转换,即使用全局函数进行转换
数字转字符串
var num=100; var str = String(num); //String为全局函数 类似的还有Number Boolean //num为任意类型数据,均可通过String转换成字符串 alert(typeof str); alert(str);
字符串转数字
//NaN 一个很特殊的数字,表示,不是数字。not a number NaN == NaN --> false var str = "100abc"; var num = Number(str); //alert(typeof num); alert(num);//结果为:NaN
数字转boolean,只有非0和非NaN其他都为true
//100 true //0 false //NaN false var num=NaN; var boo = Boolean(num); alert(typeof boo); alert(boo);//false
字符串转boolean,只有""才为false,注意:" "里面有个空格也为true
//abc true //"" false var msg=""; var boo = Boolean(msg); alert(typeof boo+" : "+boo);//boolean : false
undefined和null转换成boolean:都为false
(2)隐式转换:使用逻辑判断
var msg="abc"; if(msg){ alert(msg);//注意:此处的msg仍为"abc",并没有赋值操作 }
6、JS中的函数
定义方式一:
/* 格式: function 函数名(形式参数...) { 执行语句; return 返回值; } 函数是多条执行语句的封装体,只有被调用才会被运行。 函数的执行,只要写了函数名后面跟一对小括号,该函数就会运行 调用有参数的函数,但没有给其传值,函数一样可以运行 调用没有参数的函数,给其传值,该函数也一样运行。 */ function test(a,b,c){ //alert(b+a+c); return a+b+c; };
var r = test(10,20,30);//60
var r = test("hi","nihaoa",""hehe);//hinihaoahehe
定义方式二:动态函数
/* 定义动态函数,参数特点:最后一个为函数体,前面的都是形参 通过JS的内置对象Function实现。 例: var demo = new Function("x","y","alert(x+y);"); demo(4,6); 等同: function demo(x,y) { alert(x+y); } demo(4,6); 不同的是,动态函数,参数以及函数体都可以通过参数进行传递,可以动态指定。 */ var arg1="a"; var arg2="b"; var funbody="alert(a+b);";//这三个变量可从网络获取从而实现动态设置函数 //var funtest= new Function("a","b","alert(a+b);"); var funtest= new Function(arg1,arg2,funbody); funtest("hello"," word");//hello word
定义方式三:匿名函数
/* 格式:function(){...} 例如: var demo = function(){...}; demo(); * 通常在定义事件属性的行为时较为常用。 */ /* function(a,b){ return a+b; } */ alert("内容 还没显示"); // 给当前窗体加载完成以后事件添加监听,window为内置对象 window.onload = function(){ alert("窗体显示完了"); };