js中定义的var可以在html中用,javascript

1. javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。

2. 通常,我们需要在某个事件发生时执行代码,比如当用户点击按钮时。如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。通常的做法是把函数放入

部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。

3.innerhtml是一个属性,所以用“=”

JavaScript 可以通过不同的方式来输出数据:

使用 window.alert() 弹出警告框。

使用 document.write() 方法将内容写到 HTML 文档中。

使用 innerHTML 写入到 HTML 元素。

使用 console.log() 写入到浏览器的控制台。

4.document.write()的覆盖问题。document.write是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。每次写完关闭之后重新调用该函数,会导致页面被重写。

innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。你可以精确到某一个具体的元素来进行更改。如果想修改document的内容,则需要修改document.documentElement.innerElement。

innerHTML很多情况下都优于document.write,其原因在于其允许更精确的控制要刷新页面的那一个部分。

html>

我的第一个 Web 页面

我的第一个段落。

document.write(Date());

    不会被覆盖

html>

我的第一个 Web 页面

我的第一个段落。

点我

function myFunction() {

document.write(Date());

}

   会被覆盖 ,新页面只有日期

5. 变量是一个名称。字面量是一个值。var和let有区别。let声明的变量只在当前代码块起作用。如函数内的if内的let变量作用域只在if内

d4388e673eaf

6. var person = {firstName:"John", lastName:"Doe"};  // Object 通过对象字面量赋值

注意对象属性通过:赋值

7. 反斜杠\ 用于换行

8.您可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:

var lastname="Doe", age=30, job="carpenter";

作用域规则

d4388e673eaf

c/c++中声明的变量作用域与let相同

9.实参个数如果比形参少,那么剩下的默认赋值为 undefined,如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用 arguments 来获取剩下的参数)。

d4388e673eaf

10.字符串

实质上是String对象 下面那些方法都是它的属性

(1) 反斜杠\  是转义符

var answer="He is called \"Johnny\"";

(2)indexof()查找字符首次出现位置

var str="Hello world, welcome to the universe.";

var n=str.indexof("world"); //    从0开始数  n=6

(3)replace()替换字符

str="Please visit Microsoft!"

var n=str.replace("Microsoft","Runoob");  // n=Please visit Runoob!

(4) split() 分割字符串成数组

var str="i want to eat something";

var n=str.split(" "); //第一个参数是空格 即对原字符串以空格为依据进行分割。n= i,want,to,eat,something

n[0]=i

n[1]=want

n[2]=to

若是 var n=str.split(",") 即以逗号为依据进行分割,则 n=i want to eat something,相当于还没被分割,因为原字符串没有逗号

11.number数字

(1)NaN属性

isNaN()方法判断是否是数字,不是数字则返回真

一个数字除以一个字符串结果不是一个数字。一个数字除以一个字符串数字结果是一个数字

var x = 1000 / "Apple";

isNaN(x); // 返回 true

var y = 100 / "1000";

isNaN(y); // 返回 false

(2)数字对象

var x=123;  // x是数字

var y= new Number(123);  //  y是对象

x==y返回false

12.数组array

所有数组也都是对象,是Array类的实例

(1)创建数组

d4388e673eaf

(2)数组的prototype属性。可以为数组类新建属性和方法。下图新建了一个myUcase()方法

d4388e673eaf

注意在新创建的方法内使用this,因为调用新方法的是实例化的数组对象

n.push("xxx")//数组尾部添加xxx字符串

n.pop() //删除数组尾部一个元素  n.pop()返回的是被删除的最后一个元素,不是删除后的数组

n.shift()//删除数组第一个元素

n.join(",")   //将数组变成字符串,默认分隔符为逗号。功能与str.split(',')相反

d4388e673eaf

n.slice(1,3) //切片,返回数组。返回数组n的第2个和第3个元素组成的数组

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];

var citrus = fruits.slice(1,3);   //  citrus=[Orange,Lemon]

n.sort() //排序 默认从小到大。sort(sortby)接受形参sortby且必须是函数

var points = [40,100,1,5,25,10];

points.sort(function(a,b){return b-a});  //此时就是按从大到小排序

points.sort(function(a,b){return a-b}); //此时按从小到大排序

n.splice(index,howmany[,item1,itme2,....])用于删除和添加元素。返回的是被删除的元素组成的数组

var n=["apple","pear","berry"];

var p = n.splice(1,2,"water","gun");   //从第2个位置开始删除,删除2个元素。

//并从第2个位置开始插入元素    n=["apple","water","gun"]   p=["pear","berry"]

n.toString 将数组转为字符串

n.unshift("xxx","xxxxx") //在数组开头插入xxx与xxxxx两个元素。

更多数组方法http://www.runoob.com/js/js-obj-array.html

13.对象——变量的容器、

调用对象属性:    .property或["property"]

调用对象方法属性:     .property()

javascript没有类 ,对象的模板是构造函数。JavaScript 是面向对象的语言,但 JavaScript 不使用类。在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。JavaScript 基于 prototype,而不是基于类的。JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。

http://www.runoob.com/js/js-objects.html

(1)创建对象。两种方法

a.直接创建对象实例

d4388e673eaf

或用字面量创建

d4388e673eaf

firstname,lastname,id是变量,john,Doe,5566是变量的值。所以说对象是变量的容器

b.使用对象构造器(构造函数)

d4388e673eaf

this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)

(2)给对象构造器添加方法 。注意要先传递方法。但也可以用prototype。

//法一

function person(name){

this.name=name;

this.changeName=changeName;  //这句一定要有。把方法传递给对象实例

function changeName(name){ this.name=name; }

}

//法二 用prototype

function person(name){

this.name=name;

person.prototype.changeName=function(name){ this.name=name;}

}

var man = new person("chen");

man.changName("rui");

(3)给对象实例创建方法

d4388e673eaf

var person={

name:"chen",

fun:function (){

document.write(this.name)

}

}

person.fun();   //调用

(4)for..in..循环

var person={fname:"John",lname:"Doe",age:25};

for (x in person){

document.write(p[x]);   //   x="fname"  ,  "Iname"  ,  "Doe"      即x本身就是字符串 p.x将无法访问。第一次循环时  p[x]=p["fname"]

}

14.函数

(1)定义函数

a.   function f(a,b){ return a*b;  }

b.    var x = function(a,b){ return a*b } ;  //匿名函数是一句话 要加分号

var z = x(4,3);

(1)var x = "chen"与 x = "chen"

d4388e673eaf

(2)函数内的return语句执行后就结束该函数的执行

(3)设计一个计算器

取得表单输入的值是用value 不是用innerHTML .且得到的是字符串形式的数字。要用Number()函数转为数字

d4388e673eaf

d4388e673eaf

d4388e673eaf

(4)对多选框实现全选和取消全选

d4388e673eaf

15.HTML标签中的属性也是js中对象的属性。

如可以写成

var x=document.getElementById("test");

x.οnclick=function();

16.运算符

d4388e673eaf

d4388e673eaf

d4388e673eaf

d4388e673eaf

17.Date()

var  x = new Date();

x.getDay()  //  显示星期。0-6分别是星期天至星期六

x.getHours()//

x.getMinutes//

x.getSeconds//

或者也可以这样写

var x = new Date().getHours() ;

18 . switch(){} 当没有break时。会执行剩下所有的case和default 内的语句而且不判断条件

19 .循环

(1)for循环中的一些细节

d4388e673eaf

(2)for in循环用于对象和数组

下图中x是字符串 所以person["age"]=person[x]

d4388e673eaf

下面是用于数组的

d4388e673eaf

(3)break用于结束循环和switch。也可以 break xxx; 结束xxx代码块。(xxx是代码块的标签名)

continue只能用于循环中。

20. typeof

(1)

typeof "chen"  //返回string

typeof 3.14    //返回number

typeof [1,2,3,4]   //返回object ,数组是特殊的对象类型

(2)null与undefined

a. 何时使用null?

当使用完一个比较大的对象时,需要对其进行释放内存时,设置为 null。

null表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用,例如:

var emps = ['ss','nn'];

emps = null;    // 释放指向数组的引用

b.二者区别

null  表示一个空对象引用。undefined是一个没有设置值的变量。所以两者值相同,但类型不同。

var person=null   //person类型为object

var person   或  var person = undefined       //person类型为undefined

d4388e673eaf

21.类型转换 String()全局函数与  .toString()属性

var x=123;

x.toString()  或 String(x) 将返回字符串即string类型的123   但x本身的类型不变,还是number

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值