JavaScript基础1

什么是Javascript?
Javascript是一种基于对象和事件驱动的, 与平台无关的 ,具有安全性的 ,弱类型的脚本语言。
为什么要用?
使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。

Javascript的特点:
1.是一种脚本编写语言
JavaScript是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言,它提供了一个易的开发过程。
它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起,从而方便用户的使用操作。
2.基于对象的语言。
JavaScript是一种基于对象的语言,同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3.简单性
JavaScript的简单性主要体现在:首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4.安全性
JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。
5.动态性的
JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
6.跨平台性
JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。

JavaScript学习内容:
1.script
2.DOM:文档对象模型(操作HTML CSS代码)
3.BOM:浏览器对象模型(操作浏览器)

JavaScript运行顺序
从html页面的最上面向下运行的.
最佳实践: 将html,css写前面,将js代码写后面.
浏览器加载顺序:
1.HTML解析完成
2.外部脚本和样式加载
3.脚本在文档内解析并执行
4.HTML DOM完全构建
5.图片和外部内容的加载
6.网页完成加载

   js可以放在页面的任何地方,不过建议放在head或body中。
示例:
<script> alert("你好1"); </script>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>js</title>
<script> alert("你好2"); </script>
</head>

<body>
    <p>中国</p>
    <!-- JS(Javascript):基于对象的、事件驱动的、与平台无关的(运行环境由浏览器提供)、弱类型的脚本语言 强类型和弱类型 在声明变量时,是否需要指定变量的数据类型 它的执行顺序是从上往下 -->
    <script> alert("你好3"); </script>

    <h1>中华人民共和国</h1>
</body>
<script> alert("你好4"); </script>
</html>
<script> alert("你好5"); </script>

javascript如何加入到html中:
a. // 页面内的js代码.
b. 使用 //引入外部js文件.
c.基于事件的写法:
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!-- 引入外部的js -->
<script src="外部定义的一个(自己写一个js代码).js"></script>

<!--内部js-->
<script> var a; document.write("<br />"+typeof(a)+"<br />"); //undefined a=10; //给a赋值为一个整形数据10 document.write(typeof(a)+"<br />"); //number a="string"; //给a赋值为一个字符串string document.write(typeof(a)+"<br />"); //string a=true; //给a赋值为一个布尔类型true document.write(typeof(a)+"<br />"); //boolean //弱类型的语言,变量的数据类型在给它赋值时,才能确定,并且会随着赋值的变化而变化 </script>
</head>

<body>

</body>
</html>

javaScript是一种弱类型的语法:
Java中 int x 强类型
js中 var x //var 不知道什么类型 >>弱类型
类型:
undefined: 未定义
number: 数字
string: 字符串
boolean: 布尔型
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>==和===</title>
<script> var i=10; var j=10; document.write( i==j); //true  document.write("<br />"); document.write( i===j); //true document.write("<br />"); var k="10"; document.write( i==k); //true document.write("<br />"); document.write( i===k); //false document.write("<br />"); //==:值相等就行 //===:除值相等外,数据类型也必须相等 </script>
</head>

<body>
</body>
</html>

var声明变量时的规则: 变量的作用域:
a. 在函数外用var或在函数内不用var声明的变量为全局
b. 在函数内用var声明的是局部的
c. 在函数的参数中定义的变量为局部的,并且函数的参数不能加 var定义.
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>全局变量和局部变量</title>
<script> var a=10; function add(){ var x=20; alert(x+a); } add(); //30 m=30; function add1(){ var x=20; y=30; alert(x+y+a+m); //90 } add1(); function add2(){ alert(y+a); } add2(); //40 function add3(z){ // 局部 z=90; alert(y+z); //120 } add3(); alert(z); </script>
</head>
<body>
</body>
</html>

实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>变量的作用域</title>
<script> function show(){ for(var i=1;i<10;i++){ document.write(i+"<br />"); //1-9 } document.write(i+"<br />"); //10 var i; document.write(i+"<br />"); //10 i="string"; document.write(i+"<br />"); //string } show(); //说明在js中没有块级作用域,即使你重新声明,如果没有重新赋值,则还是会保留原有的值 </script>
</head>

<body>
</body>
</html>

js中的函数的定义语法:
a. function 函数名 (参数列表){
return 值; / 无返回值, 直接写 代码
}
b. 函数名=function(参数列表){
return 值; / 无返回值, 直接写 代码
}

调用:
a. 函数名(参数列表);
b. 值变量=function(参数列表){
return 值; / 无返回值, 直接写 代码
}();
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数</title>
<script type="text/javascript"> function add(x,y){ return x+y; } add=function(x,y){ return x+y; } alert( add ); // 输出一个字符串 function类型( java的class) "function(x,y){ return x+y; }" alert( eval( '('+ add+'(3,2) ' +')' ) ); alert( add(3,4) );//7 add1=function(x,y){ return x+y; }(3,4); alert( add1 ); //7 </script>
</head>

<body>
</body>
</html>

实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script> var a; a=10; document.write(typeof(a)+"<br />"); a=true; document.write(typeof(a)+"<br />"); </script>

<script> var x=1; function add(a){ y=2; //全局的 a=3; //局部的 alert(x+y+a); //6 } add(); alert(a); //true 引用上面那个script中的全局变量a function add1(){ alert(x+y+a); //1+2+1=4 由于此时a=true,对应的值为1 (false=0) } add1(); </script>

</head>

<body>
</body>
</html>

注意:js中的方法中没有重载这个概念, 即如果有多个函数,函数名相同,参数不同,最后一个方法会覆盖前面的方法 .
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>函数</title>

<script> function add(x,y){ return x+y; } function add(x,y,z){ return x+y+z; } function add(x,y,z,m){ return x+y+z+m; } function add(x){ return x; } document.write( add(3,4) +"<br />"); //调用函数 3 document.write( add(3,4,5) +"<br />"); //调用函数 3 document.write( add(3,4,5,6) +"<br />"); //调用函数 3 document.write( add(3,4,5,6,7) +"<br />"); //调用函数 3 </script>
</head>

<body>
</body>
    </html>
结果都是3
改进:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script> /*add(x,y):说明此函数期望获的两个参数*/ function add(x,y){ //alert(arguments.length); //内置对象arguments是用来获取此函数实际接收到的参数 var num=0; for(var i=0;i<arguments.length;i++){ num=num+arguments[i]; } return num; } document.write( add(3) +"<br />"); //调用函数  document.write( add(3,4) +"<br />"); //调用函数  document.write( add(3,4,5) +"<br />"); //调用函数  document.write( add(3,4,5,6) +"<br />"); //调用函数  document.write( add(3,4,5,6,7) +"<br />"); //调用函数 /*在js中调用方法是根据名字来的,与后面的参数个数无关,如果方法同名,则后面的会把前面的覆盖*/ </script>
</head>

<body>
</body>
</html>

结果:
3
7
12
18
25
js中的常见函数
eval() 计算javascript代码串
isNaN() 检测一个值是否是非数字的值
parseInt() 将字符串转换为整数,转换第一个无效字符之前的字符串
parseFloat() 将字符串转换为数字,转换第一个无效字符之前的字符串
alert() 弹出对话框显示消息
confirm() 用对话框询问一个回答为是或否的问题
prompt() 弹出对话框,请求用户输入一个字符串
实例:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>强制类型转换</title>
<script> var iNum=10; var sNum = iNum.toString(8); //将10转换为8进制 var iNum1= parseInt("12.6"); var iNum2= parseInt("hello"); var iNum3= parseInt("123world"); var fNum4= parseFloat("25.12.6"); var Num= Number("123world"); var b1 = Boolean(""); document.write(sNum); //12 document.write("<br />"); document.write(iNum1); //12 document.write("<br />"); document.write(iNum2); //NaN document.write("<br />"); document.write(iNum3); //123 document.write("<br />"); document.write(fNum4); //25.12 document.write("<br />"); document.write(Num); //NaN document.write("<br />"); document.write(b1); //false document.write("<br />"); document.write(isNaN("12")); //false //带一个确定按钮的提示框 alert("用户名或密码错误..."); //带确定和取消按钮的选择框 confirm("您确定要删除吗?"); //选择确定则返回true,选择取消则返回false //带一个文本输入框的提示框 prompt("请输入您的安全密码","123"); </script>
</head>
<body>
</body>
</html>

你可能感兴趣的:(JavaScript)