java前端技术---javaScript使用详解(基础篇)

一前言

   JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。这篇文章有点长,但是有需要的可以耐心看完
web前端的必须学会的三技术:
  • HTML 定义了网页的内容
  • CSS 描述了网页的布局
  • JavaScript 网页的行为

二javaScript的功能

1.直接写入 HTML 输出流

例:
<script>
document.write("<h1>这是一个标题</h1>");
document.write("<p>这是一个段落。</p>");
</script>

2.对事件的反应
例:
<button type="button" οnclick="alert('欢迎!')">点我!</button>
注:alert在script中不常用,但是在代码测试中挺有用处

3.改变网页的内容
例:
<script type="text/javascript">
function myFunction(){
	var x=document.getElementById("demo");
	x.innerHTML="测试成功";
}
</script>
<body>
<p id="demo">
JavaScript 能改变 HTML 元素的内容。
</p>
<button type="button" οnclick="myFunction()">点击这里</button>
</body>

4.改变html图像

例:
<script>
function changeImage()
{
	element=document.getElementById('myimage')
	if (element.src.match("bulbon"))第一次点击不匹配,为false,图片变bulbon,第二次点击匹配图片变bulboff,如此循环
 	{
  		element.src="/images/pic_bulboff.gif";
  	}
	else
   {
  		element.src="/images/pic_bulbon.gif";
   }
}
</script>
<img id="myimage" οnclick="changeImage()"
src="/images/pic_bulboff.gif" width="100" height="180">
<p>点击灯泡就可以打开或关闭这盏灯</p>

Src路径里有bulbon这个单词匹配则为true.如果一开始的图片是/i/eg_bulbon.gif,那么就会匹配到bulbon,if语句为ture,执行if语句,图片转换为/i/eg_bulboff.gif;如果没匹配到bulbon,执行else语句,图片转换为/i/eg_bulbon.gif。这样就实现了用js对html图片的改变

5.改变 HTML 样式
例:
<p id="demo">
JavaScript 能改变 HTML 元素的样式。
</p>
<script>
function myFunction()
{
	x=document.getElementById("demo") // 找到元素
	x.style.color="#ff0000";          // 改变样式
}
</script>
<button type="button" οnclick="myFunction()">点击这里</button>

6.验证输入
例:
<script type="text/javascript">
function myFunction(){
	var x=document.getElementById("demo").value;
	if (x==""||isNaN(x)) {//如果为非数字则为true
		alert("输入错误")
	}
}
</script>
<body>
<p>输入如果不是数字,则弹出提示</p>
<input id="demo" type="text">
<button type="button" οnclick="myFunction()">点击这里</button>

三.javaScript的输出

JavaScript 可以通过不同的方式来输出数据:
使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。

<script> a = 5; b = 6; c = a + b; console.log(c); </script>//使用f12调试的时候会在控制台看到结果

alert与console.log(c)的作用一般是用在调试javascript,区别:console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。

四.javaScript的语法

javaScript的四种数据类型:
var length = 16;  // Number 通过数字字面量赋值  
当数据太长可以用科学计数法:比如 var a=123e5代表的是 123*10的五次方
                                                        var a=123e-5代表的是123*10的负5次方即0.00123
var points = x * 10;// Number 通过表达式字面量赋值 
var lastName = "Johnson"; // String 通过字符串字面量赋值 
var cars = ["Saab", "Volvo", "BMW"];// Array  通过数组字面量赋值//获取方法 例:alert(cars[0]);
var person = {firstName:"John", lastName:"Doe"};  // Object 通过对象字面量赋值//获取方法
例:alert(person.firstName);

我们来看个例子:
<script type="text/javascript">
function myFunction(){
	 document.write('A'+'B'); 
	 alert('A'+'B');    
}
</script>
<body>
<%='A'+'B'%>
<button type="button" οnclick="myFunction()">点击这里</button>

点击之前在页面显示的是131 即字母A与字母B的ascall值相加
点击之后会跳出AB 窗口,并且页面显示会AB,document.write会把之前的内容给覆盖掉

我们再来看一个例子:
<script type="text/javascript">
function myFunction(){
	var A=null;
	var B;
        alert(A)//弹出null
        alert(B)//undefined
	alert(A==B);//true
	alert(A===B);//false
}
</script>
当用==时候浏览器会对A及B进行值的判断,因为两者都没有具体的值,认为他们都是false。
当用===全等号的时候要求他们的数据类型跟值都要相同才可以

四.最常用的对象创建方式

<script type="text/javascript">
	function Demo() {
		var obj = new Object();
		obj.name = "张思";
		obj.age = 12;
		obj.firstF = function() {
			var firstName="jack";
			return firstName;
		}
		obj.secondF = function() {
		}
		return obj;
	}
	var one = Demo(); 
	alert(one.firstF());//输出的是jack
        alert(one.firstF);//输出的是括号里的内容
        alert(one.name);
</script>

五.javaScript函数

(1)带参数的函数的调用
例子:
<button οnclick="myFunction('Bob','Builder')">点击这里</button>
<script>
function myFunction(name,job)
{
	alert("Welcome " + name + ", the " + job);
}
</script>
(2)有返回值的函数
<p>本例调用的函数会执行一个计算,然后返回结果:</p>
<p id="demo"></p>
<script>
function myFunction(a,b){
	return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);
</script>

(3)函数return的作用
<script type="text/javascript">
function myFunction(a,b){
	return a*b;
}
return;//下面就不会再执行了
document.getElementById("demo").innerHTML=myFunction(4,8);

</script>


六.javaScript的作用域

局部变量:只能在函数内部访问
<script type="text/javascript">
myFunction();
document.getElementById("demo").innerHTML = "carName 的类型是:" +  typeof carName;
function myFunction() 
{
    var carName = "Volvo";
}
</script>


因为局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量。
局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁

全局变量有 全局作用域: 网页中所有脚本和函数均可使用。 
<p id="demo"></p>
<script>
var carName = "Volvo";
myFunction();
function myFunction() 
{
    document.getElementById("demo").innerHTML =
		"我可以显示 " + carName;
}
	</script>


如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。 以下实例中 carName 在函数内,但是为全局变量。

<script type="text/javascript">
myFunction();
document.getElementById("demo").innerHTML =
	"我可以显示 " + carName;
function myFunction() 
{
    carName = "Volvo";
}
</script>
全局变量在页面关闭后销毁

七.javaScript事件

  • HTML 页面完成加载
  • HTML input 字段改变时
  • HTML 按钮被点击
<p id="demo"></p>
<script type="text/javascript">
function display(){
	document.getElementById('demo').innerHTML=Date();
}
</script>
<body>
<button οnclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<button οnclick="this.innerHTML=Date()">现在的时间是?</button>//直接在按钮上显示
<button οnclick="display()">现在的时间是?</button>
</body>
常见的JavaScript事件
事件 描述
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载

七JavaScript 字符串

字符串是用来存储和处理文本的
1.创建字符串并访问里面的字符
<script type="text/javascript">
var a="我 爱你中国123";
alert(a[0]);
</script>
下标从0开始,空格占一个字符

2.如何在里面使用转义字符
代码 输出
\' 单引号
\" 双引号
\\ 反斜杠
\n 换行
\r 回车
\t tab(制表符)
\b 退格符
\f 换页符

3.字符串常用的方法
方法 描述
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 连接两个或多个字符串,返回连接后的字符串
fromCharCode() 将 Unicode 转换为字符串
indexOf() 返回字符串中检索指定字符第一次出现的位置
lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
localeCompare() 用本地特定的顺序来比较两个字符串
match() 找到一个或多个正则表达式的匹配
replace() 替换与正则表达式匹配的子串
search() 检索与正则表达式相匹配的值
slice() 提取字符串的片断,并在新的字符串中返回被提取的部分
split() 把字符串分割为子字符串数组
substr() 从起始索引号提取字符串中指定数目的字符
substring() 提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase() 把字符串转换为小写
toString() 返回字符串对象值
toUpperCase() 把字符串转换为大写
trim() 移除字符串首尾空白
valueOf() 返回某个字符串对象的原始值



八javaScript运算符

字符串与布尔值相加,布尔值转化成字符串。
var result1=5+5+"abc"; //结果将是"10abc" 左边数值型先相加得到10然后与字符串相加变字符串型

var result2= ""+5+5+"abc"; //结果将是"55abc"  数值与字符串先相加直接变字符串

数字和布尔值相加,布尔值 false 转成 0,true 转成 1

var one=13;
var two=true;
var three=one+two;
// 结果 three:14
字符串与布尔值相加,布尔值转化成字符串。

九.javaScript常用函数

跟java程序的函数是一样的,就不细细说了
1.javaScript条件语句

在 JavaScript 中,我们可使用以下条件语句:
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行

2.switch 语句
switch(n)
{
    case 1:
        执行代码块 1
        break;
    case 2:
        执行代码块 2
        break;
    default:
        与 case 1 和 case 2 不同时执行的代码
}

3.for循环
for (语句 1; 语句 2; 语句 3)
{
    被执行的代码块
}

for/in循环 就是java里的foreach,写法有点区别

<button οnclick="myFunction()">点击这里</button>
<p id="demo"></p>
<script>
function myFunction(){
	var x;
	var txt="";
	var person={fname:"Bill",lname:"Gates",age:56}; 
	for (x in person){                               //对比:for(对象类型 a:要遍历的数组或者集合){
                                                                             }
		txt=txt + person[x];
	}
	document.getElementById("demo").innerHTML=txt;
}
</script>

4.while语句
while:
while (条件) {     需要执行的代码 }
do/while:
do
{
    需要执行的代码
}
while (条件);

5.Break与continue
for (i=0;i<10;i++)
{
    if (i==3) break;
    x=x + "The number is " + i + "<br>"; 结果是1.2.3
}

for (i=0;i<=10;i++)
{
    if (i==3) continue;
    x=x + "The number is " + i + "<br>";结果是除了3
}
所以区别就是,一个停止循环,一个在某个节骨眼停止后还会继续后面的

十.javaScript常见使用误区

1.浮点数运算
所有的编程语言,包括 JavaScript,对浮点型数据的精确度都很难确定: 
var x = 0.1;
 var y = 0.2;
 var z = x + y            // z 的结果为 0.3 if (z == 0.3)            // 返回 false

要想解决这个问题,可以这样
(x*10+y*10)/10

2.字符串分行
在javaScript中字符串你直接回车分行是错误的
<script>
alert("你好
哦");\\错误
alert("你好 \
哦");\\正确
</script>

3.Return 语句使用注意事项
document.getElementById("demo").innerHTML = myFunction(55);
function myFunction(a) {
    var
    power = 10;
    return a * power;//550
}
document.getElementById("demo").innerHTML = myFunction(55);
function myFunction(a) {
    var
    power = 10;
    return
    a * power;//undefined
}
由于 return 是一个完整的语句,所以 JavaScript 将关闭 return 语句。
所以不用对return进行换行

for和function不同,for中变量的作用域是上一级function或者全局,而function中变量的作用域是function内部。所以for循环后,i是继续存在的。

4.程序块作用域
<script>
for (var i = 0; i < 10; i++) {
    // some code
	alert(i);
}
document.getElementById("demo").innerHTML = i;//输出的是10
</script>

新手看到这个可能会觉得纳闷,为啥能输出10,那么我来分析下吧
1.在每个代码块中 JavaScript 不会创建一个新的作用域,一般各个代码块的作用域都是全局的。
不像function函数一样,作用在内部
2.为什么不是9而是10呢?
因为再执行9之后,还要进行一次i++,所以结果是10

十一.javaScript的json对象

JSON 是用于存储和传输数据的格式。
JSON 通常用于服务端向网页传递数据 

JSON 语法规则:
数据为 键/值 对。
数据由逗号分隔。
大括号保存对象
方括号保存数组

json对象:{"name":"Runoob", "url":"www.runoob.com"}

json数组:"sites":[
    {"name":"Runoob", "url":"www.runoob.com"}, 
    {"name":"Google", "url":"www.google.com"},
    {"name":"Taobao", "url":"www.taobao.com"}
]
sites对象时一个数组,包含了三个对象.

json与字符串的互相转换
字符串---->json
JSON.parse(字符串)
<script>
var text = '{ "sites" : [' +
	'{ "name":"Runoob" , "url":"www.runoob.com" },' +
	'{ "name":"Google" , "url":"www.google.com" },' +
	'{ "name":"Taobao" , "url":"www.taobao.com" } ]}';
	//注意:引号一定要打对地方,格式必须要正确
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.sites[1].name + " " + obj.sites[1].url;
</script>

json---->字符串
JSON.stringify(json对象)
var str = {"name":"中国", "englis":"china"}
str_pretty1 = JSON.stringify(str)


十二.javaScript void

<a href="javascript:void(0);">点我没有反应的!</a>
<a href="#pos">点我定位到指定位置!</a>
<br>
...
<br>
<p id="pos">尾部定位点</p>


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值