首页>>前端>>JavaScript->JavaScript基础课堂案例?

JavaScript基础课堂案例?

时间:2023-12-05 本站 点击:0

javascript 基础 :用 document.body.childNodes.length获得空白页面body中子元素的个数

childNodes获取的节点包括文本节点和元素节点,body中没有任何内容,但是实际存在一个空的文本节点,所以document.body.childNodes.length就是1很正常,要获取只有元素子节点,请用children属性

javascript 基础 js类和原型到底是什么

其实简单来说,原型就是一个对象对另一个对象的引用。

然后其是怎么联系起来的呢,是通过prototype。对就是这个,给你一个例子

var obj = {

a: 2

}

var myObj = Object.create(obj);

console.log(myObj.a); // 2

console.log(myObj === obj);  // false

console.log(Object.getPrototypeOf(myObj) === obj);  // true

Object.getPrototypeOf(myObj).a = 4

console.log(obj.a);  // 4

通过上面的例子,你可以看到,myObj的原型就是obj!然后obj的原型是哪个呢,是Object.prototype。实际上通过上面,你就能知道,原型原理上是对于另一个对象的引用,通过引用吧几个对象给串联起来调用。

那么你的第二个问题马上又来了,可能也是你关心的问题,类和原型的关系是啥呢?

实际上,类在实例化的时候,也就是通过new来创建一个对象的时候,是分为以下几步的:

创建一个全新的对象

这个新对象会被执行prototype连接

新对象绑定到函数调用的this

如果函数没有返回其他对象,那么new表达式中的函数调用会自动返回这个新对象

这个就是new实例化的时候,所做的一些步骤,那么你其中有几个需要注意的点:

如果有return并且返回的是一个对象的话,则直接返回return后的那个对象。

反之,则新建一个对象。

并且吧函数的prototype引用到新建对象的prototype中。

这个怎么理解呢?再给你一个例子,可能例子更直观一些:

var protoObj = {

b: 10

}

function Foo() {}

Foo.prototype = protoObj;

var a = new Foo();

console.log(Object.getPrototypeOf(a) === Foo.prototype);  // true

console.log(Object.getPrototypeOf(a) === protoObj); // true

console.log(a.b); // 10

通过这个例子,你可以看出来,实际上类实例化的过程,其中有一项,就是把其构造好的对象的prototype和类的prototype做关联。因为做好了引用关联,所以构造好的对象可以使用原类里面的原型方法。

这个也讲完了,那么你可能会对class比较感兴趣,想知道class是怎么做的,实际上,class更多,我理解上就是上面类似于Foo()类的一种语法糖,当然也不仅仅是语法糖,但是大体原理是没啥区别的,所以,上面所说的,对于class也同样适用

好啦,如果你对原型和类实例化有更多想了解的,可以给你两篇文章,参考一下:

Javascript基础之-原型(prototype)

Javascript基础之-this

求问JavaScript

!DOCTYPE html

html

head

meta charset="UTF-8"

title动态创建HTML实践/title

style type="text/css"

.container{

width:800px;

margin:20px auto;

}

.all{

width:300px;

height: 450px;

border:1px solid blue;

float:left;

}

.selected{

width: 300px;

height: 450px;

border:1px solid green;

float:left;

margin-left:20px;

}

.input{

margin:10px;

font-size: 1.2em;

}

h1{

border-bottom:2px solid black;

}

ul{

padding:2px;

}

ul li{

list-style: none;

margin-top:4px;

margin-left:2px;

border:1px solid brown;

background-color: beige;

font-size:2em;

cursor: pointer;

}

/style

script

var map={},reg=/^\s+|\s+$/g;

onload=function(){

var lis=allFruits.getElementsByTagName("li");

for(var i=0;ilis.length;i++){

var li=lis[i];

li.onclick=function(){

if(this.parentElement!=selectedFruits){

selectedFruits.appendChild(this);

}else{

allFruits.appendChild(this);

}

}

map[li.innerHTML.replace(reg,"")]=1;

}

btnInput.onclick=function(){

var vv=fruitInput.value.replace(reg,"");

if(null==map[vv]){

var li=document.createElement("li");

li.onclick=function(){

if(this.parentElement!=selectedFruits){

selectedFruits.appendChild(this);

}else{

allFruits.appendChild(this);

}

}

li.innerHTML=vv;

allFruits.appendChild(li);

map[vv]=1;

}else{

alert("“" + vv + "”" + "已经存在 !");

}

}

}

/script

/head

body

div

div

label for="fruitInput" 输入新的水果:/label

input id="fruitInput" type="text" /

input id="btnInput" type="button" value="确认输入"/

/div

div

h1所有水果/h1

ul id="allFruits"

li苹果/li

li香蕉/li

li橘子/li

li葡萄/li

li柚子/li

li西瓜/li

li哈密瓜/li

/ul

/div

div

h1我喜欢的水果/h1

ul id="selectedFruits"/ul

/div

/div

/body

/html

如何正确学习JavaScript

JavaScript作为网站前端的核心知识是非常重要的,但是如何学习JavaScript是很多初学者面对的一个难题,下面我说一下个人对于如何学习JavaScript的一点心得,希望能帮到大家。

1、首先学习基础,尤其是JavaScript与其他语言不同的基础知识。

学习每个编程语言可能都要从基础的变量函数结构等学起,JavaScript相对于其他的编程语言在基础上有一些比较有特点的地方,这些东西是尤其需要我们注意的,比如说自调函数、比如说变量值为空不是null而是undefined的等,这些东西都是和主流的编程的语言如c++、java等是有区别的,所以想要学好JavaScript,这些基础的知识一定要把握好学习好才行。

2、关于学习JavaScript的进阶

JavaScript进阶知识更是有很多难理解的东西和不同于其他语言的东西,这些东西都是深入学习JavaScript的难点,简单的说一下JavaScript是基于对象的浏览器脚本语言,但是为了使JavaScript也能够支持面向对象编程,人们就使用了很多的方法来模拟面向对象的的特点,这些就变成了JavaScript的一些难点,比如说JavaScript的继承要借助原型、比如JavaScript的类需要使用构造函数来构造一个对象等,这些东西都是和其他支持面向对象的语言是不同的,所以就导致了一些难点。关于进阶学习JavaScript,还有JavaScript一些深入的知识需要去理解比如原型链和闭包、比如收函数的作用域执行流程和上下文,这些东西都是JavaScript比较深入的知识、

最后说明,JavaScript作为前端的核心语言绝对没有没有想象的那么简单,要想学好JavaScript除了以上提到的知识和注意点,还需要的就是多动手和实践,我们都知道网页上的所有特效都是借助JavaScript来实现,那么我们就需要在学习JavaScript的过程中多使用原生的JavaScript代码实现一些特效,当然学习使用jQuery等JavaScript类库进行开发也十分的重要,但是这绝对不能是取代我们学习JavaScript的方法。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/JavaScript/13116.html