JavaScript&TypeScript学习总结

本文详细介绍了JavaScript的引入方式、基础语法、DOM操作和BOM使用,以及TypeScript的基本语法和特性。JavaScript作为浏览器端的主要脚本语言,允许动态交互;TypeScript作为JavaScript的超集,提供了静态类型等增强功能,适合大型项目开发。学习这两者对于前端开发者至关重要。
摘要由CSDN通过智能技术生成


前言

通过本次web应用基础课程,加上我之前自学的相关内容,我了解并且学到了很多的前端的知识,在此,我将对我所学到的JavaScript&TypeScript进行知识的总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、JavaScript是什么?

JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。
JavaScript 运行在客户端(浏览器)的编程语言(后来有了node.js,使得JavaScript也可以运行在服务器端,因此JavaScript几乎全能)。作为一门编程语言,JavaScript是一门弱类型的语言,用来定义网页的行为。在前面,我们学习的HTML就像是小鸟的身体结构,此时只是一个雏形,所以不太美观,当我们学习了CSS后,小鸟就会长出鲜艳的羽毛,让我们赏心悦目。结合本次我们要总结的(JavaScript&TypeScript),这只小鸟就会有 相应的行为,最终能够在湛蓝的天空中自由的翱翔!!!

二、JavaScript具体知识总结

1.JavaScript的引入

1.行内引入

行内引入方式必须结合事件来使用,但是内部js和外部js可以不结合事件

<开始标签 on+事件类型=“js代码”></结束标签>

<input type="button" onclick="alert('行内引入')" value="button" name="button">
<button 0nclick="alert(123)">点击按钮</button>

2.内部引入

在head或body中,定义script标签,然后在script标签里面写js代码

<script>
    alert("内部引入");
</script>

3.外部引入

定义外部js文件通过HTML的script标签进行文件的引入


<script type=“text/javascript” src=“./demo.js”>

2.JavaScript的基础语法

通过本学期的学习加实践,我对JavaScript的使用语法进行了相关总结:
1.JavaScript 是一个脚本语言。它是一个轻量级,但功能强大的弱类型编程语言。和其他编程语言一样,JavaScript也有自己的定义变量的语法。JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值:

var x=1

2.JavaScript的语句和其他编程语言类似,只有语法上的差异,在此仅简要举例
条件语句:

if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
JavaScript三目运算 - 当条件为true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行

如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。

for (var i=0;i<cars.length;i++){
    document.write(cars[i] + "<br>");
}

可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。

typeof "wode"                 // 返回 string
typeof 10                    // 返回 number
typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [ 1,2,3]              // 返回 object
typeof {name: 'Alice', age:18}  // 返回 object
typeof new Date()             // 返回 object
typeof function () {}         // 返回 function
typeof wanglaoshi                 // 返回 undefined

在JavaScript中,函数即对象,可以随意地被程序操控,函数可以嵌套在其他函数中定义,这样可以访问它们被定义时所处的作用域中的任何变量。

function myFunction()
{
alert("yep");
}

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

  • 正则表达式是由一个字符序列形成的搜索模式。
  • 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
  • 正则表达式可以是一个简单的字符,或一个更复杂的模式。
  • 正则表达式可用于所有文本搜索和文本替换的操作。

在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

var str = "hello world";
var n = str.search("world");
var str = "hello world";
var res = str.replace(/world/i, "hello");

基础语法在此不再过多赘述

3.JavaScript的DOM(文档对象模型)

1.我们通过JavaScript来操作HTML的元素,需要获取元素对象,例如

var x=document.getElementById("wodeid");
var y=document.getElementsByClassName("wodeclass");
var z=document.getElementsByTagName("p");

2.获取到元素对象后,我们就可以对其内容进行修改

var x=document.getElementById("header");
x.innerHTML="这是标题";

3.获取到元素对象后,我们就可以对其样式属性进行修改

document.getElementById("p1").style.color="red";

4.获取到元素对象后,我们就可以对其绑定事件

var btn1 = document.querySelector('.btn1');
        var btn2 = document.querySelector('.btn2');
        // 1.传统方法
        btn1.onclick = function () {
            alert('hello');
            btn1.onclick = null;
        }
        // 2.注册监听
        btn2.addEventListener('click', fn);
        function fn() {
            alert('hello');
            btn2.removeEventListener('click', fn)
        }

5.HTML DOM 模型被构造为对象的树,这种结构被称为节点树:
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

获取到对应的HTML元素后,有一些常用的 HTML DOM 方法可以使用:

appendChild(node) - 插入新的子节点(元素)
removeChild(node) - 删除子节点(元素)
innerHTML - 节点(元素)的文本值
parentNode - 节点(元素)的父节点
childNodes - 节点(元素)的子节点
attributes - 节点(元素)的属性节点

获取到对应的HTML元素后,有一些常用的 HTML DOM 属性可以使用:


innerHTML - 节点(元素)的文本值
parentNode - 节点(元素)的父节点
childNodes - 节点(元素)的子节点
attributes - 节点(元素)的属性节点

3.JavaScript的BOM(浏览器对象模型)

BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。
BOM 比 DOM 更大,它包含 DOM。
1.浏览器顶级对象window

它是 JS 访问浏览器窗口的一个接口。
它是一个全局对象。定义在全局作用域中的变量、函数都会变成 window 对象的属性和方法。

2.window对象的窗口加载事件,当文档内容完全加载完成会触发该事件

window.onload = function(){}

3.window对象调整窗口大小

//监听窗口大小改变的事件
window.addEventListener("resize",function(){});

4.定时器
setInterval() 方法重复调用一个函数,每隔这个时间,就去调用一次回调函数

 window.setInterval(回调函数, [间隔的毫秒数]);

clearInterval()方法取消了先前通过调用 setInterval()建立的定时器。

 window.clearInterval(此处是setInterval方法返回的对象,唯一标识该定时器);

5.this指针
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,一般情况下this的最终指向的是那个调用它的对象

  • 方法调用中谁调用this指向谁
  • 构造函数中this指向构造函数的实例
  • 全局作用域或者普通函数中this指向全局对象window(注意定时器里面的this指向window)

三、TypeScript是什么?

TypeScript 是由微软开发的一款开源的编程语言,TypeScript 是 Javascript 的超集,遵循最新的 ES6、ES5 规范,TypeScript 扩展了 JavaScript 的语法。 TypeScript 更像后端 Java、C#这样的面向对象语言,可以让 TypeScript 开发大型企业项目。

为什么要学习TypeScript?

  • 它使用基于类的面向对象编程,便于操作
  • TypeScript的出错在编译阶段就能提示
  • Typescript能够编译出一个能在所有浏览器上运行的JavaScript版本
  • 它提供了可选静态类型的优点。

四、TypeScript具体知识总结

TypeScript的基础语法

1.TypeScript的数据类型

1.number类型

let num: number = 111;

2.string类型

let str: string = "world";

3.布尔类型

let flag: boolean = true;

4.在ts中 null和undefined

var n = null;
var u = undefined;
在ts中 null和undefined他们是类型 也是值

5.数组类型

let arr3 = ["www",777, false];

6.any类型
它可以是任何类型但是它也会失去某些数据

let msg: any = "1234";

2.TypeScript的语法

函数:

function add(x: number, y: number): number {
  return x + y;
}

箭头函数:

let jiantou = () => `this is arrow function`;

TypeScript中的类:

class Person{
    name!:string;
    age:number;
 
    constructor(name:string, age:number) {
        this.name = name;
        this.age = age;
    }
    work(){
        console.log(this.name + " work")

}

接口 Interfaces:
接口(Interfaces)是一个很重要的概念,可以理解为一种规范或者约束,用来描述 对象(object) 的形状 或者对 类(class) 的行为 进行抽象。对类的行为抽象将在后面 类与接口 一章中介绍,下面主要介绍对对象的形状进行描述。

interface Person {
  name: string;
  age: number;
}
let tom: Person = {
  name: 'Tom',
  age: 25
};

匿名函数:

let mySum = function (x: number, y: number): number {
    return x + y;
};

类实现接口implements:
实现(implements)是面向对象中的一个重要概念。一个类只能继承自另一个类,不同类之间可能会有一些共有特性,提取多个类的共有特性,作为一个接口,再用 implements 关键字来实现就可以大大提高面向对象的灵活性。

interface Ieat {
   eat();
}

class Person implements Ieat{
  eat(){}
}

class Animal implements Ieat {
  eat(){}
}

模块:
实现(implements)是面向对象中的一个重要概念。一个类只能继承自另一个类,不同类之间可能会有一些共有特性,提取多个类的共有特性,作为一个接口,再用 implements 关键字来实现就可以大大提高面向对象的灵活性。

模块导出使用export关键字
export interface SomeInterface { 

}
模块导入使用import关键字
import shape = require("./demo"); 


总结

以上就是今天对JavaScript&TypeScript的学习总结,本文简单总结了JavaScript&TypeScript使用,我自己更多的是使用JavaScript和封装之后的jQuery,TypeScript用的不是很多,很多总结不到位,在今后的前端道路上我一定坚持努力学习,希望在实践中多尝试并加以总结,祝大家在前端的学习道路上收获满满!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值