java script基础入门2

方法声明

<script>function arr(a,b) {return a+b;}let sum=arr(11,12);window.document.writeln(sum);
// ===========================================
//注意调用方法的在代码中的位置let sum1=function(arr){window.document.writeln('吃'+arr)}sum1('苹果');</script>

方法立即执行
在开头使用! + - 的运算符合,最后()的方法只能执行一次
使用()括号包起来,推荐使用,没有返回值参与运算

<script>
//使用! +  - 的运算符合只能执行一次! function arr() {window.document.writeln('更何况');}();
//   arr();调用无效,只能执行一次
// 使用()括号包起来,推荐使用,没有返回值参与运算(function arr01() {window.document.writeln('更何况');})();
//    arr01();一样调用无效,只能执行一次(function arr02() {window.document.writeln('更何况');}());
// arr02()一样调用无效,只能执行一次
</script>

函数

函数声明
Function是JavaScript提供的一种引用类型,通过Function类型创建Function对象。
在JavaScript中,函数也是以对象的形式存在的,每个函数都是一个Function对象。

// 函数表达式 函数声明function fun01() {document.writeln('函数表达式');}// 函数调用fun01();//-------------------------------------------------function fun1(par) {document.writeln('函数表达式'+ par);}// 函数调用fun01('可传参');

函数表达式

// 声明式函数let fun02 = function () {document.writeln('声明式函数');};//调用函数fun02();//-----------------------------------------------let fun2 = function (msg) {document.writeln('声明式函数'+msg);};//调用函数fun02('参数');

箭头函数
将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。

 // 箭头函数// 箭头函数中的this指的是函数的绑定者// 而函数表达式或者声明式函数中的this则为函数的执行者let fun03 = () => {document.writeln('箭头函数<br>');};fun03('');//-------------------------------------------------------let fun3 = (msg) => {document.writeln('箭头函数<br>'+ msg);};fun04('传参');

函数的返回值:
1. 可以使用return 来设置函数返回值
语法:
return 值
return 后的值将会作为函数的执行结果,
可以定义一个变量来接收该结果
如果return语句后不跟任何值就相当于返回一个undefined,
如果函数中不写return, 则也会返回undefined
return后可以跟任意类型的值

 function fun07(slogan) {return 'slogan >>> ' + slogan;}let slogan01 = fun07('我爱你中国');document.writeln(slogan01 + '<br>');
 let fun08 = function (slogan) {return 'slogan >>> ' + slogan;}let slogan02 = fun08('亲爱的母亲');document.writeln(slogan02 + '<br>');
  let fun09 = (slogan) => {return 'slogan >>> ' + slogan;}let slogan03 = fun09('桃李不言下自成蹊');document.writeln(slogan03 + '<br>');

可变参数
在定义方法时,在最后一个形参前加上三点 …,就表示该形参可以接受多个参数值,多个参数值被当成数组传入。
可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数

由于可变参数必须是最后一个参数,所以一个函数最多只能有一个可变参数

Js的可变参数,会被编译器转型为一个数组

// 可变参数 注意 可变参数只能是参数列表的最后一个形参function fun12(...args) {console.log(args);}fun12('java', 'python', 'scala');function fun13(param, ...args) {console.log('param >>>' + param);console.log(args);}fun13('java', 'python', 'scala');

作用域

局部变量
变量在函数内声明,变量为局部变量,具有局部作用域。
局部变量:只能在函数内部访问。


// 此处不能调用 carName 变量
function myFunction() {var carName = "Volvo";let carName = "Volvo";// 函数内可调用 carName 变量
}

全局变量
变量在函数外定义,即为全局变量 var。
全局变量有 全局作用域: 网页中所有脚本和函数均可使用。
如果变量在函数内没有声明(没有使用 var 关键字),当声明变量 没有使用 let 或 var 修饰的时候 默认隐含是 var修饰该变量,该变量为全局变量。

//全局变量
var carName = " Volvo";// 此处可调用 carName 变量
function myFunction() {// 函数内可调用 carName 变量
}// 当声明变量 没有使用 let 或 var 修饰的时候 默认隐含是 var修饰该变量
//没有使用 var 关键字,该变量为全局变量
function myFunction() {carName = "Volvo";
}

类变量与私有属性

<script>class Person {static slogan = '桃李不言下自成蹊';// 私有属性#food = '核桃';#flower;// 公有属性nickname = '李昊哲';eat(food) {console.log(this.nickname + '吃' + this.#food);}set flower(flower){console.log('set');this.#flower = flower;}get flower(){console.log('get');return this.#flower;}}console.log(Person.slogan);let person = new Person();console.log(person);// 李昊哲吃核桃person.eat();person.nickname = '大宝子';person.food = '芒果';// 李昊哲吃核桃person.eat();console.log(person);// 调用set方法为私有属性赋值person.flower = '牡丹';// 调用get方法获取私有属性的值console.log(person.flower);
</script>

解构赋值

从数组中解构

<script>// 1、从数组中解构const F4 = ['小沈阳', '刘能', '赵四', '宋小包'];// let shen = F4[0];// let liu = F4[1];// let zhao = F4[2];// let song = F4[3];let [shen, liu, zhao, song] = F4;window.console.log(shen);window.console.log(liu);window.console.log(zhao);window.console.log(song);</script>

从对象中解构

// 2、从对象中解构const person = {name: '姓名',age: 39,eat: function () {window.console.log('吃吃吃');}}console.log(person.name);console.log(person.age);person.eat();let { name, age, eat } = person;console.log(name);console.log(age);eat();

方法赋值

 // 方法赋值let server_url = {protocol: 'http://',domain: '192.168.1.106',port: 2022,context: ''};function getServer01(server_url) {if (server_url.context == '') {return server_url.protocol + server_url.domain + ":" + server_url.port;} else {return server_url.protocol + server_url.domain + ":" + server_url.port + "/" + server_url.context;}}console.log(getServer01(server_url));function getServer02(protocol, domain, port, context) {if (context == '') {return protocol + domain + ":" + port;} else {return protocol + domain + ":" + port + "/" + context;}}

字符串拼接

let love01 = '我爱你中国';let love02 = '亲爱的母亲';
// 使用加号 实现 字符串拼接let love03 = love01 + love02;console.log(love03);
// 使用字符串魔板 实现 字符串拼接let love04 = `${love01},${love02}`;console.log(love04);
// 使用concat方法 实现 字符串拼接let love = love01.concat(love02);console.log(love);

字符串查找
字符串与下标互相查找
charAt,indexOf,lastIndexOf,search,replace,replaceAll

 <script>let x = "桃李不言下自成蹊";let y = "桃李不言下自成蹊";let slogan = x+y;console.log(slogan);// 根据字符串下标 获取字符串某下标位置上的字符console.log(slogan.charAt(5));// 字符串中第一次出现的字符串的下标console.log(slogan.indexOf('成'));// 字符串中最后一次出现的字符串的下标console.log(slogan.lastIndexOf('不'));// 搜索 查找 返回 indexconsole.log(slogan.search('不'));// 替换 第一次出现// console.log(slogan.replace('不','love'));// 替换 所有console.log(slogan.replaceAll('不', 'love'));</script>

数组,字符串转换
JOIN 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
split() 方法用于把一个字符串分割成字符串数组。

 let times = [1983, 11, 22];let date = times.join('-');// 1983-11-22console.log(date);//将字符串其分割成数组let array = date.split('-');console.log(array);

字符串截取
起始值 结束值 slice
起始值 截取长度 substr

// 桃李不言下自成蹊 起始值 结束值 前包后不包console.log(slogan.slice(1,5));
//桃李不言下自成蹊 起始值 结束值 前包后不包console.log(slogan.substring(1,5));
// 桃李不言下自成蹊 起始值 截取长度console.log(slogan.substr(2,5));结果:// 李不言下// 李不言下// 不言下自成

number 与 string 互转
toString() 转字符串
parseInt 数值

 // number 与 string 互转let a = 10;// numberconsole.log(typeof(a));// stringconsole.log(typeof(a.toString()));// objectconsole.log(typeof(new String(a)));// intconsole.log(typeof(parseInt('20')));

字符串处理空格
replaceAll替换

// 字符串处理空格let dahai = ' 大海 大海 ';// 7console.log(dahai.length);// 5 收尾去空格console.log(dahai.trim().length);// 4 利用字符串 替换 实现 去除字符串中所有的空格console.log(dahai.replaceAll(" ","").length);

java script基础入门·2相关推荐

  1. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  2. 【JAVA零基础入门系列】Day14 Java对象的克隆

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  3. 一篇文章让你从JAVA零基础入门`OOP`编程12.19

    一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后,整理的文章,文中对知识点的解释仅为个人理解. 配套PPT,站点源码,等学习资料 一.预科 1.1 JAVA 介 ...

  4. 阿里云【名师课堂】Java零基础入门24 ~ 26:方法的定义与使用

    阿里云[名师课堂]Java零基础入门24 ~ 26:方法的定义与使用 24:方法的基本定义 无返回值无参数 无返回值有参数 有返回值有参数 25:方法重载(重点) 26:方法递归调用 24:方法的基本 ...

  5. 视频教程-由浅入深Java零基础入门-Java

    由浅入深Java零基础入门 负责过多个软件项目的研发.设计和管理工作,拥有项目管理师认证.项目监理师中级认证.出版过的图书有<微信小程序开发图解案例教程><Axure RP8原型设计 ...

  6. 一篇文章让你从JAVA零基础入门`OOP`编程12.20

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(QQ_3336392096.png)] 一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后, ...

  7. 一期完结《一篇文章让你从JAVA零基础入门`OOP`编程》12.21

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(QQ_3336392096.jpg)] 一篇文章让你从JAVA零基础入门OOP编程 前言: 此文为玄子,复习ACCP-S1课程后, ...

  8. 阿里云【名师课堂】Java零基础入门6:CLASSPATH环境属性

    阿里云[名师课堂]Java零基础入门6:CLASSPATH环境属性 一.具体内容 二.总结 一.具体内容 CLASSPATH指的是类的加载路径,是一个路径列表,用于搜索Java编译或者运行时所用到的类 ...

  9. 最适合Java初学者学习的Java零基础入门教程

    各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java. 因此,也是吸引了不少年轻人投入到Java的学习之中. 所以,今天 ...

最新文章

  1. C++基于TCP/IP简单的客户端、服务器通信程序实例
  2. 前端小纠结--集成gitflow和standard-version使用
  3. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)
  4. css 盒子有内容 盒子往下掉_css盒子模型与文本溢出学习笔记
  5. JZOJ 1016. 【PKU3321】苹果树
  6. linux下文件以及目录权限修改(摘抄)
  7. php 统计 系统设计,求解统计系统设计的一些技术方案和实现
  8. ASP连接11种数据库的常用语法
  9. 【笔试/面试】 —— 最长递增子序列
  10. 体重 年龄 性别 身高 预测鞋码_计算体重指数时,需要以下()数据。A.性别B.年龄C.身高D.体重...
  11. Unity Animator动画状态机 深入理解(一)
  12. 组建技术团队的一些思考
  13. JS jeDate日期控件使用
  14. 一款简单好用的动画/游戏制作软件|源码编辑器|编程猫南宁体验中心
  15. 百度网络质量监控实战:猎鹰一战成名(下)
  16. 基于android手机实时监控ipcam视频之三:H.264的RTP打包解析
  17. Excel Vba拆分并填充单元格
  18. cannot enlist more than one non-XA resource
  19. dsp版win10和普通版区别_Win10和 Windows10版本区别是什么?
  20. s32k118CAN通信问题

热门文章

  1. 简单的diy固态硬盘
  2. 盛志凡:TVOS标准体系建设及产业化推进与广电终端智能化
  3. 2022微信支付V3避坑指南-paySign签名
  4. kaggle医学图像中的CT值(Hounsfield Unit)
  5. easyExcell
  6. 简单粗暴的黑苹果安装教程
  7. statsmodels.tsa.stattools.adfuller()结构及用法详解
  8. 英语语法(2)----点破主谓宾系表三大句型
  9. 布朗大学计算机专业怎么样,布朗大学计算机工程研究生怎么样?好不好
  10. 录屏软件Camtasia9的录屏文件存储位置/好用的免费录屏软件代替