首页 > 其他分享 >Day03

Day03

时间:2022-10-13 00:23:34浏览次数:54  
标签:box now name Day03 var document 节点

3.3方法

定义方法

方法就是把函数放在对象里面,对象只有两个东西:属性和方法

var xcl={
   name:'昌隆',
   birth:2000,
   //方法
   age:function (){
       //今年-出生的年
   var now=new Date().getFullYear();
   return now-this.birth;
}
}
//属性
xcl.name
//方法,一定要带()
xcl.age()

this代表什么?

birth

也可以拆开这样写、
function getAge(){
   var now=new Date().getFullYear();
   return now-this.birth;
}
var xcl={
   name:'昌隆',
   birth:2000,
   age:getAge;
}

//xcl.age()//ok
//getAge() //NaN   window
//再加上apply就能实现getAge()输出
getAge.apply(xcl,[])//apply()里面的代表要指向的对象,和参数

this是无法指向的,是默认指向调用它的那个对象

apply

在this中可以控制this指向

4.内部对象

标准对象

typeof 123
'number'
typeof 'number'
'string'
typeof true
'boolean'
typeof NaN
'number'
typeof []
'object'
typeof {}
'object'
typeof Math.abs
'function'
typeof undefined
'undefined'

4.1.date

基本使用

var now=new Date();
now.getFullYear();//年
now.getMonth();//月   0~11
now.getDate();//日
now.getDay();//星期
now.getHours();//时
now.getMinutes();//分
now.getSeconds();//秒
now.getTime();//时间戳   全世界统一
console.log(new Date(1665488547896));//时间戳转为时间

转换

now =new Date(1665488547896)
Tue Oct 11 2022 19:42:27 GMT+0800 (中国标准时间)
now.toLocaleDateString
ƒ toLocaleDateString() { [native code] }//注意,调用是一个方式,不是一个属性
now.toLocaleDateString()
'2022/10/11'
now.toLocaleString
()
'2022/10/11 19:42:27'
now.toGMTString()
'Tue, 11 Oct 2022 11:42:27 GMT'

4.2.JSON

在JS中一切皆为对象,任何js支持的类型都可以用JSON来表示;number,string

格式:

  • 对象都用{}

  • 数组都用[]

  • 所有的键值对都是key:value

JSON字符串和JS对象的转化

var user={
   name:'xcl',
   age:3,
   sex:'男'
}
//对象转化为JSON字符串
var jsonUser=JSON.stringify(user);//{"name":"xcl","age":3,"sex":"男"}
//JSON字符串转化为对象 参数为JSON字符串
var obj=JSON.parse('{"name":"xcl","age":3,"sex":"男"}');//{name: 'xcl', age: 3, sex: '男'}

JSON和JS对象的区别

var obj={a:'hello',b:'hellob'}
var json='{"a":'hello',"b":'hellob'}'

4.3.Ajax

  • 原生的js写法 xhr异步请求

  • jQuary封装好的方法 $("#name").ajax("")

  • axios请求

5.面向对象编程

5.1.什么是面向对象

javascript、java、C#......面向对象;javascript有些区别

  • 类:模板 原型对象

  • 对象:具体的实例

原型

var user={
   name:"xcl",
   age:20,
   run:function(){
       console.log(this.name+"run....");
  }
}
var xiaoming={
   name:"xiaoming"
}
//小明的原型是user
xiaoming.__proto__=user;
xiaoming.run();
 //给Student新增一个方法
 <!--方法一:直接在原方法中新增一个方法
 function Student(name){
     this.name=name;
          hello:function f(){
     }
 }
 -->
 <!--方法二
function Student(name){
    this.name=name;
}
//给Student新增一个方法
Student.prototype.hello=function(){
    alert('hello');
}
-->

class继承 ES6之后才有的

 <!--方法三:ES6之后定义一个学生的类-->
       //前面的直接删除,直接定义一个类,与java相似
       class Student{
           constructor(name){
               this.name=name;
          }
           hello(){
               alert('hello');
          }
      }
       var xiaoming=new Student('xiaoming');
class Student{
   constructor(name){
       this.name=name;
  }
   hello(){
       alert('hello');
  }
}
class XiaoStudent extends Student {
   constructor(name, age) {
       super(name);
       this.age = age;
  }
   myGrade(){
       alert('I am 20 yeas old!');
  }
}
var xiaoming=new Student('xiaoming');
var xiaohong=new XiaoStudent('xiaohong',20)

原型链

__photo__

6.操作BOM对象(重点)

浏览器介绍

js和浏览器的关系

js诞生就是为了能够让他在浏览器中运行

BOM:浏览器对象模型

  • IE 6-11

  • Chrome

  • Sagari

  • FireFox

  • Opera

    三方

    • qq浏览器

    • 360浏览器

window

window代表 浏览器窗口

window.alert(1)
undefined
window.innerHeight
226
window.innerWidth
767
window.outerHeight
831
window.outerWidth
782

Navigator

Navigator封装了浏览器的信息

navigator.appName
'Netscape'
navigator.appVersion

'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
navigator.userAgent
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
navigator.platform
'Win32'

大多数时候不会使用navigator对象,因为会被人为修改

不建议使用这些属性来判断和编写代码

screen

代表屏幕的尺寸
screen.width
1536px
screen.height
864px

location(重要)

location代表当前页面的URL信息

host: "localhost:63342"
href:"http://localhost:63342/JavaScript/lesson04/2.class%E7%BB%A7%E6%89%BF.html?_ijt=fv12lctvicb9da4h7:
protocol: "http:"  //协议
reload: ƒ reload() //刷新网页
//设置新的地址
location.assign('网址')//可以使每次访问某个网站时跳转到你所指定的网站

document

document代表当前的页面,HTML DOM文档树

document.title
'F 搜'
document.title='xcl'
'xcl'

获取具体的文档树节点

<dl id="app">
   <dt>java</dt>
   <dd>JSE</dd>
   <dd>JEE</dd>
</dl>
<script>
   var dl=document.getElementById('app');
</script>

获取cookie

document.cookie
''

劫持cookie原理

<script src="aa.js"></script>
<!--恶意人员:获取你的cookie上传到它的服务器-->

服务器端可以设置cookie:httpOnly

history

代表浏览器的历史记录

history.back()//后退
History.forward()//前进

7.操作DOM对象(重点)

DOM:文档对象模型

核心

浏览器网页就是一个Dom树形结构

  • 更新:更新Dom节点

  • 遍历dom节点,得到dom节点

  • 删除:删除一个dom节点

  • 添加:添加一个新的节点

    要操作一个dom节点就必须要先获得这个Dom节点

获得Dom节点

    var h1= document.getElementsByTagName('h1');//获取标签节点
   var p1=document.getElementById('p1');//获取ID节点
   var p2=document.getElementsByClassName('p2');//获取class节点
   var ul=document.getElementById('ul');
   var li1=document.getElementById('li1');
   var box=document.getElementById('box');
   var childern=box.children;//获取所有父节点下的子节点
   //box.firstChild;//获取第一个节点
   //box.lastChild;//获取最后一个节点

这是原生代码,之后尽量用jQuery();

更新节点

<div id="id1">

</div>
<script>
   var id1=document.getElementById('id1');

</script>

操作文本

  • id1.innerText='123'修改文本的值

  • id1.innerHTML='<strong>123</strong>'可以解析HTML文本标签

操作JS

<script>
   var id1=document.getElementById('id1');
   id1.innerText='abc';
   id1.style.color='red';//属性使用字符串包裹
   id1.style.fontSize='100px'//_转驼峰命名问题
   id1.style.padding='3em'
</script>

删除节点

删除节点的步骤:先获取父节点,再通过父节点删除自己

<div id="box">
 <h1>标题一</h1>
 <p id="p1">p1</p>
 <p class="p2">p2</p>
</div>
<script>
var p1=document.getElementById('p1');
   var box=p1.parentElement;//获取父节点
   box.removeChild(p1);
   //删除一个节点的过程
 box.removeChild(box.children[0]);
 box.removeChild(box.children[1]);
 box.removeChild(box.children[2]);
</script>

注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意

标签:box,now,name,Day03,var,document,节点
From: https://www.cnblogs.com/xclxcl/p/16786620.html

相关文章

  • Day03-java学习记录
    类型转换由于Java是强类型语言,所以某些运算,需要用到类型转换!低》》》》》》》》》》》》》》》》》高byte,short,char->int->long->float->double强制转换高到低自......
  • ERP项目笔记—Day03
    关于通用抽取思路:(dao层) 关于抽取思想解读,首先要有一个通用的接口(右上角红色框里的内容),在接口里边已经定义了通用的方法,比方说是分页查询的方法,CRUD的方法,等。这些方法之......
  • 《剑指offer》day03
    替换空格题目描述思路原地修改适用于c++这种字符串可变的语言,可以直接使用双指针法双指针法先将原空间扩容至结果所需大小,然后两个指针分别指向旧的和新的的尾部......
  • Day03
    属性选择器<!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <title>Title</title>  <style>    .demoa{      float:......
  • day03 Jmeter授权设置
    一、BasicAuth通过验证用户名和密码才能访问资源1、添加线程组2、添加http请求请求方法get,请求路径:/basic-auth/(用户名)/(密码)3、在http下添加授权管理器,并添加参......
  • Day03
    初识表单post和get提交<!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <title>表单学习</title></head><body><h1>注册</h1><!--登录注册--><!......
  • day03-MySQL基础知识02
    MySQL基础知识024.CRUD数据库CRUD语句:增(create)、删(delete)、改(update)、查(Retrieve)Insert语句(添加数据)Update语句(更新数据)Delete语句(删除数据)Select语句......
  • day03 --> (多表查询、事务、DCL)
    一、多表查询 1.查询语法: select列名列表from表名列表where准备SQL:#创建部门表createtabledept(idintprimarykeyauto_increment,......
  • day03
    leetcode203.移除链表元素删除链表中的一个节点分为两种情况,节点是头结点和不是头结点两种方法方法1:头结点和其他节点分开处理classSolution{//不使用虚拟头结......
  • python学习之路Day03(pyhcarm基础配置/python基础语法/简单数据类型)
    今日内容概要pycharm基础设置PEP-8规范/python基础语法变量与常量定义基本数据类型(整形int,字符串str,浮点型float,字典dict,列表list)首先我们要学习Pycharm......