JavaScript基础

JavaScript基础

js是一种基于对象的脚本语言,代码复用的范围是函数,函数可以独立存在。函数的最大作用是提供代码复用,将需要重复使用的代码块定义为函数,提供更好的代码复用

前端编写JS的流程

  • 布局:html+css 在写js之前必须保证有一个稳固的布局,这个布局本身 不能有任何兼容问题
  • 属性:确定要修改哪些属性 确定通过js修改哪些属性,例如display
  • 事件:确定用户做哪些操作(产品设计)确定要在什么样的事件里修改,比如点击、移入移出
  • 编写js:在事件中,用js来修改页面元素的样式

变量 var声明变量,let声明变量
变量的命名规则和规范

规则 - 必须遵守的,不遵守会报错

  • 由字母、数字、下划线、$符号组成,不能以数字开头
  • 不能是关键字和保留字,例如:for、while。
  • 区分大小写

规范 - 建议遵守的,不遵守不会报错

  • 变量名必须有意义
  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:在这里插入代码片userName、userPassword
  • 交换两个变量的值
    普通做法

JS中的原始数据类型: number,string,boolean,null,undefined,object

Number类型
注意事项: 如果字面值中的数值超出了范围,那么前导零将被忽略,后面的数值将被当作十进制数值解析

String类型

  • 字符串长度:length属性用来获取字符串的长度
  • 字符串拼接:字符串拼接使用 + 连接。两边只要有一个是字符串,那么+就是字符串拼接功能,两边如果都是数字,那么就是算术功能。

Boolean类型

  • Boolean字面量: true和false。true为1,false为0。

Undefined和Null

  • undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
  • null表示一个空,变量的值如果想为null,必须手动设置

1.数据类型转换
转换成字符串类型

  • toString()

  • String()
    String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:undefined和null,用toString()会报错

  • 拼接字符串方式
    num + “”,当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串

2.转换成数值类型

  • Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回
  • NaNparseInt()
  • parseFloat()
  • +,-0等运算

3.转换成布尔类型

  • Boolean()

逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
! 非 取反

关系运算符(比较运算符)
< > >= <= == != === !==

赋值运算符
= += -= *= /= %=

switch语句
语法格式:

switch (expression) {
  case 常量1:
    语句;
    break;
  case 常量2:
    语句;
    break;
  case 常量3:
    语句;
    break;case 常量n:
    语句;
    break;
  default:
    语句;
    break;
}

循环结构
在javascript中,循环语句有三种,while、do…while、for循环。

一个变量声明,但未赋值,输出则是undefined
函数没有明确返回值,如果用变量接受,输出则是undefined
Undefine + number = NaN

定义函数的3种方式

命名函数
function hello(name){ alert(‘欢迎您,’+name+",你好!"); }

在同一个script标签中允许先调用函数,然后再定义函数;在 不同的script中要求必须先定义函数,然后再调用函数

定义匿名函数
定义匿名函数无需指定函数名,而是将参数列表紧跟在function关键字后
匿名函数有很好的可读性。注意js函数很特殊,即使可重复调用的代码块,也是一个Function实例

匿名函数!
使用Function类匿名函数
Function定义的函数

JavaScript中可以使用以下几种对象

  • JavaScript内置对象,如Date、Math及String
  • 用户自定义的对象
  • 由浏览器根据页面内容自动提供的对象
  • 服务器上固有的对象。

局部变量和局部函数
在函数内部定义的变量称为局部变量,在函数外部定义的变量称为全局变量 局部函数是指在函数中定义的函数

函数就像java方法一样,这个函数可以被调用
定义一个函数时,系统也会创建一个对象,这个对象就是Function类的实例
定义一个函数时,这个函数通常都会附加给某个对象,作为对象的方法。没有明 确指出将函数附加到哪个对象上时,该函数将附加到window对象上,作为window对象的方法。

ff1()
定义函数时也得到了一个与函数同名的类,该函数就是该类的唯一的构造器。 所以实际上函数有直接调用和使用new关键字调用两种方式

调用函数的四种方式
作为一个函数去调用【函数名()】(函数作为全局对象调用, 会使this的值成为全局对象,使用window对象作为一个变量,容易造成程序崩溃!) ,例如alert(’’)
函数作为方法调用:(函数作为对象的方法调用,会使this的值成为对象的本身!),例如window.alert(’’)
使用构造函数调用函数:(构造函数中的this指向当前对象) new Date()
作为函数方法间接调用函数nn3()();

  • 函数直接调用
  • 对象方法调用
  • 构造器调用
  • 间接调用

利用call和apply来实现,this就是call和apply对应的第一个参数, 如果不传值或者第一个值为null、undefined时this指向window

以apply方法调用 call调用函数时必须在括号中详细列出每个参数 apply动态调用函数时,可以在括号中以arguments代表所有的参数 call和apply用法 间接调用函数,改变作用域的this值 劫持其他对象的方法

因为javascript中没有class类,所以有人把类也称为原型对象,因为这两个概念从在编程中发挥的作用看都是一个意思,为了统一叫法,这里就统一叫类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值