1、运算符

1、位运算符

将数字转换为二进制后进行运算
只做整数运算,如果是小数的话,则去掉小数位再运算
2、位运算
1、按位 与:&
语法:a&b;
2、按位 或|
语法:a|b
任何场合:任何小数与0做按位或的操作,可以快速转换为整数(并四舍五入)
3、按位 异或:^
语法:a^b

3、赋值和扩展赋值运算符

1、赋值运算符:=
2、扩展赋值运算符
+=,-=,*=,/=
3、条件运算符(三目运算)
单目(一元)运算符:++,--,!
双目(二元)运算符:+,-,*,/,%,<,>,......
三目(三元)运算符:?:
1、语法
条件?表达式1、表达式2;
条件是一个Boolean类型的数据,如果条件结果为true,则执行表达式1的内容
并将表达式1的结果做为整体表达式的结果,如果条件为false,则执行表达式2、的内容,
并将表达式2的结果做为整体表达式的结果。
demo
<script>
var a=Number(prompt("请输入一个数字"));
var b=Number(prompt("请输入一个数字"));
a>b&&(a^b,b^a,a^=b);
console.log(a,b);
</script>

函数:

1、什么是函数

函数(function)是一段预定义好,并且可以被反复使用的代码块
预定义好:事先声明,但不是马上执行
反复使用:可以被多次调用
代码块:包含多条可执行的语句
2、函数的
声明与调用
1、普通函数
语法:function 函数名(){
语句块;
}
调用:在JS中任何合法位置处,都可以通过 函数名()的方式进行调用
demo:<script>
function sayhello(){
console.log("hello world");
console.log("你好");
}
function textsayhello(){
console.log("现在进入textsayhello函数");
sayhello();
console.log("textsayhello执行完");
 
}
 
sayhello();
 
</script>
 
<button onclick="sayhello();">单据</button>
<button onclick="textsayhello();">调用textsayhello</button>

2、带参函数

语法:function 函数(参数列表){
语句块;
}
参数列表:
可以由0或多个参数的名称来组成,多个参数的话中间用, 隔开
定义函数时的参数列表,都称为“形参(形式参数)”
2、调用的语法
任意合法JS位置处
函数名(参数列表);
调用函数时,所传递的参数列表,称之为"实参(实际参数)"
demo:
<script>
function change(a,b){
a > b && (a^=b,b^=a,a^=b);
console.log(a,b);
 
}
 
 
 
</script>
<button onclick="change(3,5)">调用change函数</button>
4、常用的带参函数
parseint(变量);
parsefloat(变量);
number(变量);
console.log("");

3、带返回值的函数

由函数体内 带到函数体外的数据,叫做返回值
语法:
function 函数名(参数列表){
语句块;
return 值;
}
允许通过一个变量来接收调用函数后的返回值
var 变量名=函数名(实参列表);

3、作用域

1、什么是作用域
指的是变量和函数 可以访问范围,作用域分为两大类
1、函数作用域
只在定义的函数内允许访问变量和函数
2、全局作用域
一经定义,在如何位置处都能访问
2、函数作用域的变量
在某个函数中说明的变量,就是函数作用域中的变量,也可以称之为”局部变量“
3、全局作用域的变量
一经说明,任何位置都能使用,又称为“全局变量”
声明方式
1、将变量声明在最外层,所有的function之外
2、声明变量时,不使用var关键字,一律是全局变量,但有风险
建议
全局变量,尽量都声明在所有的function之外
声明变量时,也一律都使用var关键字
4、什么是声明提前
JS程序在正式执行前,会将使用var声明 的变量以及function声明的函数,
预读到所在作用域的顶端。但赋值还保留在原位置上
建议
最好将变量的声明和函数的声明集中到所在作用域的最顶端
5、按值传递
基本数据类型的数字在做参数传递时,实际上时传递的是参的副本到函数中,
原始数据并为发生过改变

JS笔记 运算符 函数的更多相关文章

  1. JS基础-运算符-函数

    1.运算符  1.赋值运算符和扩展运算符    1.赋值运算符 =    2.扩展运算符      +=,-=,*=,/=,%=,^=....      ex:        a=a+b;--> ...

  2. js笔记:匿名函数

    ;(function(){ alert('啥也没做');})(); 会弹框. 这是个匿名函数.最前面的分号可以去掉,仅仅是在代码压缩时防止出错. 该函数可以拆解成非匿名函数: var a= funct ...

  3. js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域

    js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...

  4. JS 笔记(二) - 函数

    1. 函数的 声明 1) 声明式写法 function j1(id){ alert(id); } 2) 声明匿名函数变量 var j2 = function (a, b) { alert(a + &q ...

  5. 笔记:js的replace函数

    replace函数 js的replace函数与c#的有一个不同,js的只替换第一个字符 例如,var a=',1,2' var b=a.replace(',','') 结果b='1,2'(ps:这是一 ...

  6. C++笔记(1)----此运算符函数的参数太多

    在VS2015中定义了这样一个类: #include<iostream> #include<vector> #include<string> using names ...

  7. 剑指offer笔记面试题1----赋值运算符函数

    题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString{ public: CMyString(char* pData = nullptr); CMyS ...

  8. js立即执行函数

    一.JS立即执行函数的写法 方式1.最前最后加括号 (function(){alert(1);}()); 方式2.function外面加括号   (function(){alert(1);})(); ...

  9. js原生之函数

    1.函数作为参数传给其他函数:    data.sort(function(a,b){return a-b})    //关于数组的sort函数,其回调函数返回负值,a在b之前    //正值,b在a ...

随机推荐

  1. java 面向对象(三十七):反射(一) 反射的概述

    1.本章的主要内容 2.关于反射的理解 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属 ...

  2. Django框架09 /ajax、crsf、settings导入

    Django框架09 /ajax.crsf.settings导入 目录 Django框架09 /ajax.crsf.settings导入 1. ajax概述 2. ajax应用 3. ajax上传文件 ...

  3. Java实现 LeetCode第30场双周赛 (题号5177,5445,5446,5447)

    这套题不算难,但是因为是昨天晚上太晚了,好久没有大晚上写过代码了,有点不适应,今天上午一看还是挺简单的 5177. 转变日期格式   给你一个字符串 date ,它的格式为 Day Month Yea ...

  4. 动手实现 LRU 算法,以及 Caffeine 和 Redis 中的缓存淘汰策略

    我是风筝,公众号「古时的风筝」. 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 那天我在 LeetCode 上刷到一道 LRU 缓存机制的问题, ...

  5. 转载一篇关于kafka零拷贝(zero-copy)通俗易懂的好文

    原文地址 https://www.cnblogs.com/yizhou35/p/12026263.html 零拷贝就是一种避免CPU 将数据从一块存储拷贝到另外一块存储的技术. DMA技术是Direc ...

  6. js获取div对象几何信息

    /** * @description 获取对象信息: * bottom: 208 * height: 200 (老版本IE不兼容) * width: 200 (老版本IE不兼容) * left: 8 ...

  7. 一篇文章,学会jmeter模拟文件上传、下载操作

    最近很多同学都在问jmeter上传,下载文件的脚本怎么做? 正巧这阵子忙完有时间,就来“折腾”一番,哈哈 现整理出来和大家分享 到底该怎么做? 一.准备工作: 上传接口一个(自行开发解决了) 下载接口 ...

  8. react : umi 引入 antd 踩坑

    首先要明确一个问题. 不管是 antd 还是 dva 还是别的什么东西,他们都是 umi 的插件——只要这个项目是使用 umi 脚手架生成的. 所以第一步应该是 .umirc.js (config.j ...

  9. 【日常摘要】- RabbitMq实现延时队列

    简介 什么是延时队列? 一种带有延迟功能的消息队列 过程: 使用场景 比如存在某个业务场景 发起一个订单,但是处于未支付的状态?如何及时的关闭订单并退还库存? 如何定期检查处于退款订单是否已经成功退款 ...

  10. [日常摘要] -- ThreadLocal篇

    简介 ThreadLocal,即线程变量,是一个以ThreadLocal对象为键.任意对象为值的存储结构.这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个 ...