JavaScript基础

一.对象

对象:
   我们将对象分为了几类:
 1.宿主对象 (host Objects) 是由JavaScript宿主环境提供的对象
 它的行为完全由宿主环境决定
 2.内置对象(Built in Objects) 是由JavaScript语言提供的对象
   固有对象 由标准规定的随着JavaScript运行时而创建的对象实例
   原生对象 可以由用户通过 Array、RegExp
   普通对象 由{} 语法 或者 Object构造器 或者 class关键字创建的对象

 Object类型 是一个对象,是JavaScript中的引用数据类型

创建对象
方式一:

var student = new Object();
 student.name = '张三';
 student.age = 18;
 console.log(student.name);

方式二:

var student = {
        name:'张三',
        age:18,
        sex:'男'
    }
    console.log(student);
    console.log(student['name']);

遍历对象

for (var studentKey in student) {
    console.log(studentKey +"-"+student[studentKey]);
}
数据类型
 基本数据类型 引用数据类型
 JavaScript 基本数据类型 中
 String Number Boolean Undefined Null
引用数据类型
 是保存在内存中的对象
 当一个变量是一个对象时 ,实际上变量中保存的并不是对象本身,是对象的引用
 当从一个变量向另一个变量复制引用类型的值时,将会对对象引用复制到变量中并不是创建了一个新的对象
栈和堆
 JavaScript在运行时 数据是保存在栈和堆内存中的
 栈内存中用来保存变量和基本类型,堆中存的对象
 我们在声明一个变量是,实际上就是在栈内存中创建一个空间来保存变量
var a = 789;
var b = 'hello';
var c = false;
var d = {name:'张三',sex:'男'};

二.函数

函数

函数是一连串子程序的组成 可以被外部程序调用

可以向函数中传递参数之后 函数可以选择返回一定值

JavaScript 从上而下执行 但是函数的内部不是这样

如果只是对函数进行了声明 那么其中的代码不会执行 只有在调用函数时才会执行函数内部代码 JavaScript中的函数也是一个对象

函数的创建

  使用函数对象创建函数 几乎不用 

  var 函数名 new Function("执行的语句");

var funA = new Function("console.log('测数数据')");

函数表达式

var 函数名 = function(形参1,形参2.....形参5){
   语句
 }
   js中所有的参数的传递 都是按值传递,也就是说吧函数外的值赋值给了函数内部的参数,就是把值从一个变量赋值给了另一个变量
 var sum = function (num1,num2) {
    var result = num1 + num2;
    return result;
 }
 var result =  sum(1,2);
 console.log(result)
function fu() {
    function zi() {
       console.log("这是zi函数")
  }
  zi();
}
fu();
匿名函数 没有名字的函数就匿名函数可以让一个变量来接收  (函数表达式方式)
立即执行函数函数定义完成后 立即执行 只会执行一次
(function () {
   alert("这是立即执行函数");
 })();
使用工厂模式创建对象
function createPerson(name,sex) {
      var obj = new Object();
      obj.name = name;
      obj.sex = sex;
      obj.sayHello = function () {
         console.log(this.name);
     }
     return obj;
  }
var person1 = createPerson('张三','男');
var person2 = createPerson('王五','男');
console.log(person1)
console.log(person2)

this

解析器在调用函数时 每次都会向函数的内部传递一个隐含的参数
就是this ,this执行是一个对象
这个对象被称为函数执行的上下文对象,根据函数调用方式不同
this会指向不同的对象
函数式形式调用时 this是window
以方法的形式调用时 this就是调用方的的那个对象

构造方法

构造方法就是一个普通的函数,创建方式和普通函数没有区别
不同的是构造函数一般首字母大写
需要使用new关键字 来调用
function Person(name, sex) {
        this.name = name;
        this.sex = sex;
        this.sayHello = function () {
            console.log(this.name);
        }
    }
    var person1 = new Person('张三','男');
    var person2 = new Person('王五','男');
    console.log(person1);
    console.log(person2);

    if(person1 instanceof Person){
        console.log("是person类型的")
    }

三.RegExp

正则表达式

用于定义一些字符串的规则,计算机可以根据正则表达式
 来检查一个字符串是否适合标准
 var 变量名 =  new RegExp('正则表达式','匹配模式');
 匹配模式
 i: 忽略大小写
 g: 全局匹配功能
 ig: 忽略大小写并且全局匹配
创建正则表达式
var aeg = new RegExp("ab",'i');

 

//使用正则表达式检查内容
var result = aeg.test(str);
console.log(result);
// 使用字面量创建
// var 变量名 = /正则表达式/匹配模式;
var reg = /a/i;
var str = 'ABc';
var result = reg.test(str);
console.log(result);
 | 或者
 [a-gA-G0-9] 区间判断
 [^A-Z]  除了A-Z之间的内容
 [35879] 可以为 3 5 8 7 9
 \d : 任意的数字 相当于[0-9]
 \D :非数字
 \w 任意的字母 数字  下划线 相当于[A-Za-z0-9_]
 \W 除了字母 数字  下划线 相当于[^A-Za-z0-9_]
 \s 空格
 \S 除了空格
 {} 向前匹配一次
 {n} 最少出现n次
 {n,} 最少出现n次,最多无上线
 {n,m} 最少出现n次,最多出现m次
 + 至少一次 相当于{1,}
      * 0或多个 相当于{0,}
 ? 0或1个 相当于{0,1}
 \. 表示 .
 \\ 表示 \
 ^[\u4e00-\u9fa5]{0,}$ 汉字

四.JavaScript DOM

 DOM 当页面加载时 浏览器会创建页面的文档对象模型
 (Document Object Model)
                     文档
                     HTML
          head                   body
          title           属性 元素 [a  ul h1 table p sp b e ]
                           li     tr  th
                                      td
 HTML DOM模型 结构化的对象树
  获取 更改  添加 删除HTML元素
  节点 Node:是构成网页的最基本的组成,网页中每一个部分都可称为节点
  文档节点  整合HTML文档
  元素节点 HTML文档中的HTML标签
  属性节点 元素的属性
  文本节点 HTML标签的文本内容
  文档节点(Document)代表整合HTML文档,网页中所有的节点都是它的子节点
  元素节点 (Element) 各种标签都是元素节点
  属性节点(Attribute) 表示的是标签中一个属性
  文本节点 (Text) 表示的是HTML标签以外的文本内容
<p id="p1">这是一个<strong>段落</strong></p>
<p>这是一个段落</p>
<p class="class_p">这是一个段落</p>
<hr/> <!-- 水平线-->
<ul class="list1">
    <li>列表项1</li>
    <li>列表项2</li>
    <li>列表项3</li>
    <li>列表项4</li>
</ul>
<hr/>
<a id="a1" href="8.内置对象.html"  >单击跳转</a>
<hr/>
<div id="div1" style="width: 100px;height: 100px;background: red;">
</div>
 var p = document.getElementById('p1');
 console.log(p);

 var p = document.getElementsByTagName("p");
 console.log(p[1]);

 var p = document.getElementsByClassName("class_p");
 console.log(p);
// 通过css的 选择器 获取页面元素
 var list = document.querySelectorAll(".list1 li");
 console.log(list);

var p = document.getElementById('p1');
// 获取文本内容
console.log(p.innerText);

console.log(p.innerHTML);
p.innerHTML = '<strong>这是一个段落</strong>';

var a = document.getElementById("a1");
// 获取a标签的属性
console.log(a.href);
a.href = 'https://www.baidu.com';

var div = document.getElementById("div1");
console.log(div.style.width);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值