当前位置:网站首页>JS objects, functions and scopes
JS objects, functions and scopes
2022-08-02 03:55:00 【Little ginny's cat】
如果你爱上了某个星球的一朵花.那么,只要在夜晚仰望星空,就会觉得漫天的繁星就像一朵朵盛开的花.
——《小王子》
JS对象, 函数和作用域
1.什么是对象
(1)对象是拥有属性和方法的数据.
(2)在 JS中,几乎所有的事物都是对象
(3)对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现.
var car = {
name:"BYD", model:500, color:"white"};
(4)可以使用字符来定义和创建 JavaScript 对象:
var person = {
firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
可以跨越多行:
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
2.对象属性
(1) Object properties are key-value pairs
“JavaScript 对象是键值对的容器”.
键值对通常写法为 name : value (键与值以冒号分割).
(2)可以通过两种方式访问对象属性:
person.lastName;
或
person["lastName"];
3.对象方法
(1)Write properties as functions,就是对象方法
对象方法通过添加 () 调用 (作为一个函数).
name = person.fullName();
//访问 person 对象的 fullName() 方法:
name = person.fullName;
//访问 person 对象的 fullName 属性
(2)创建对象方法:
methodName : function() {
// 代码
}
访问对象方法:
objectName.methodName()
通常 fullName() 是作为 person 对象的一个方法, fullName 是作为一个属性.
如果使用 fullName 属性,不添加 (), 它会返回函数的定义:
objectName.methodName
4.什么是函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.
function myamiao()
{
alert("Hello amiao!");
}
5.参数与返回值
(1)函数参数
在调用函数时,可以向其传递值,这些值被称为参数.
可以发送任意多的参数,由逗号 (,) 分隔:
function myFunction(var1,var2)
{
//代码
}
变量和参数必须以一致的顺序出现.第一个变量就是第一个被传递的参数的给定的值,以此类推.
<p>点击这个按钮,来调用带参数的函数.</p>
<button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
<script>
function myFunction(name,job){
alert("Welcome " + name + ", the " + job);
}
</script>
//上面的函数在按钮被点击时会提示 "Welcome Harry Potter, the Wizard".
(2)返回值的函数
有时,我们会希望函数将值返回调用它的地方.通过使用 return 语句就可以实现.在使用 return 语句时,函数会停止执行,并返回指定的值.
function myFunction()
{
var x=5;
return x;
}
或
function myFunction(a,b){
return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);
//"demo" 元素的 innerHTML 将是:12
When you want to exit the function ,也可使用 return 语句.返回值是可选的
function myFunction(a,b){
if (a>b){
return;
}
x=a+b
}
//如果 a 大于 b,则上面的代码将退出函数,并不会计算 a 和 b 的总和.
6.局部与全局变量
(1)局部变量
A variable declared inside a function(使用 var),只能在函数内部访问它.
可以在不同的函数中使用名称相同的局部变量
只要函数运行完毕,本地变量就会被删除
(2)全局变量
A variable declared outside a function,网页上的所有脚本和函数都能访问它.
(3)变量的生存期
从它们被声明的时间开始.
局部变量会在函数运行以后被删除.
全局变量会在页面关闭后被删除.
(4)Assign a value to an undeclared variable
If you assign a value to a variable that has not been declared,该变量将被自动作为 window 的一个属性.
如这条语句:carname=“BYD”; 将声明 window 的一个属性 carname.
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除.
var var1 = 1; // 不可配置全局属性
var2 = 2; // 没有使用 var 声明,可配置全局属性
console.log(this.var1); // 1
console.log(window.var1); // 1
console.log(window.var2); // 2
delete var1; // false 无法删除
console.log(var1); //1
delete var2;
console.log(delete var2); // true
console.log(var2); // 已经删除 报错变量未定义
7.作用域
(1)作用域是可访问变量的集合
在 JavaScript 中, 对象和函数同样也是变量.
作用域为可访问变量,对象,函数的集合.
JavaScript 函数作用域: Scopes are accessed and manipulated within functions.
(2)局部作用域
就是局部变量
// 此处不能调用 carName 变量
function myFunction() {
var carName = "BYD";
// 函数内可调用 carName 变量
}
(3)全局作用域
就是全局变量
边栏推荐
- [mikehaertl/php-shellcommand]一个用于调用外部命令操作的库
- 17.JS条件语句和循环,以及数据类型转换
- 宝塔邮局邮箱设置成功后能发送不能接收问题处理
- SQL: DDL, DML, DQL, DCL corresponding introduction and demonstration
- 16.JS事件, 字符串和运算符
- v-bind用法:类动态绑定对象 数组 style样式 及函数方法
- Living to detect the Adaptive Normalized Representation Learning for GeneralizableFace Anti - Spoofing reading notes
- easyswoole uses redis to perform geoRadiusByMember Count invalid fix
- 你的本地创建的项目库还在手动创建远端代码仓库再推送吗,该用它了
- js 之 Object.defineProperty()
猜你喜欢
随机推荐
__dirname
1.11今日学习
(1)Thinkphp6入门、安装视图、模板渲染、变量赋值
批量替换文件字体,简体-&gt;繁体
17.JS条件语句和循环,以及数据类型转换
TypeScript error error TS2469, error TS2731 solution
uniapp | 使用npm update更新后编译报错问题
IP access control: teach you how to implement an IP firewall with PHP
Function hoisting and variable hoisting
多线程(实现多线程、线程同步、生产者消费者)
百度定位js API
轮播图详解(完整代码在最后)
PHP8.2将会有哪些新东西?
PHP8.2中字符串变量解析的新用法
[league/flysystem]一个优雅且支持度非常高的文件操作接口
每日面试题 2022/7/28
微信小程序九宫格抽奖和转盘抽奖的实现
项目中遇到的问题
1.uview form校验位置可以改变 2.时间区间
(8) requests、os、sys、re、_thread