查看: 7591|回复: 74
收起左侧

[综合教程经验] 【发帖达人赛】Javascript和IT7000脚本

Slimming 2022-4-11 21:03:14 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 Slimming 于 2022-4-11 21:18 编辑

一、简介
image.png JavaScript(简称“JS”)是一种轻量级的面向对象的编程语言。InoTouchPad 脚本采用的是JavaScript代码编写,具有更高的灵活性,可以完成一些运算逻辑,同时可使用系统中自带的面向对象的属性和方法,注意区分字母大小写。
下面分享一些学习笔记,内容有点多,删减了挑重点讲,推荐收藏。


二、数据类型

基本数据类型:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined
引用数据类型:对象(Object)、数组(Array)、函数(Function)
1.String
字符串(String)类型是一段以单引号''或双引号""包裹起来的文本,例如 '123'、"abc"。
定义字符串时,如果字符串中包含引号,可以使用反斜杠\来转义字符串中的引号,或者选择与字符串中不同的引号来定义字符串,如下例所示:
        var str ="Let's have a cup of coffee.";  // 双引号中包含单引号
        var str = 'Hesaid "Hello" and left.';    // 单引号中包含双引号
        var str ='We\'ll never give up.';        // 使用反斜杠转义字符串中的单引号


属性
  
描述
length
获取字符串的长度

[table=98%]
  
方法
  
描述
charAt()
返回在指定位置的字符
concat()
拼接字符串
indexOf()
检索字符串,获取给定字符串在字符串对象中首次出现的位置
lastIndexOf()
获取给定字符串在字符串对象中最后出现的位置
localeCompare()
返回一个数字,并使用该数字来表示字符串对象是大于、小于还是等于给定字符串
match()
根据正则表达式匹配字符串中的字符
replace()
替换与正则表达式匹配的子字符串
search()
获取与正则表达式相匹配字符串首次出现的位置
slice()
截取字符串的片断,并将其返回
split()
根据给定字符将字符串分割为字符串数组
substr()
从指定索引位置截取指定长度的字符串
substring()
截取字符串中两个指定的索引之间的字符
toLowerCase()
把字符串转换为小写
toUpperCase()
把字符串转换为大写
toString()
返回字符串
最常用的.length获取长度。
对字符处理:组合、替代、查找功能,在plc中也有相应的函数FIND/REPLACE/等。分享一个字符串完成的动态文字功能。
JS_动态文字.gif

2.Number 类型
数值(Number)类型用来定义数值,JavaScript 中不区分整数和小数(浮点数),统一使用 Number 类型表示,如下例所示:
      1. var num1 = 123;     // 整数
      2. var num2 = 3.14;    // 浮点数
  
属性
  
描述
Number.MAX_VALUE
JavaScript 中所能表示的最大值
Number.MIN_VALUE
JavaScript 中所能表示的最小值

  
方法
  
描述
Number.parseFloat()
将字符串转换成浮点数,和全局方法  parseFloat() 作用相同
Number.parseInt()
将字符串转换成整型数字,和全局方法  parseInt() 作用相同
Number.isFinite()
判断 Number 对象是否为有穷数
Number.isInteger()
判断 Number 对象是否为整数
Number.isSafeInteger()
判断 Number 对象是否为安全整数,即范围为 -(2⁵³ - 1)到 2⁵³ - 1 之间的整数
Number.toString()
把 Number 对象转换为字符串,使用指定的基数
Number.toExponential()
把 Number 对象的值转换为指数计数法

3. Boolean 类型
布尔(Boolean)类型只有两个值,true(真)或者 false(假),在做条件判断时使用的比较多。

4.Undefined 类型
Undefined 也是一个只有一个值的特殊数据类型,表示未定义。当我们声明一个变量但未给变量赋值时,这个变量的默认值就是 Undefined。

5.Object 类型
JavaScript 中的对象(Object)类型是一组由键、值组成的无序集合,定义对象类型需要使用花括号{ }。在 JavaScript 中,对象类型的键都是字符串类型的,值则可以是任意数据类型。要获取对象中的某个值,可以使用对象名.键的形式,如下例所示:
var person = {
              name: 'Bob',
              age: 20,
              tags: ['js', 'web', 'mobile'],
              city: 'Beijing',
              hasCar: true,
              zipcode: null
       };

6. Array 类型
数组(Array)是一组按顺序排列的数据的集合,数组中的每个值都称为元素,而且数组中可以包含任意类型的数据。在 JavaScript 中定义数组需要使用方括号[ ],可以使用 Array() 函数来创建数组,如下例所示:
       vararr = new Array(1, 2, 3, 4);
       vararr = [1, 2, 3.14, 'Hello', null, true];
  
属性
  
描述
length
设置或返回数组中元素的个数

  
方法
  
描述
concat()
拼接两个或更多的数组,并返回结果
copyWithin()
从数组的指定位置拷贝元素到数组的另一个指定位置中
every()
检测数值元素的每个元素是否都符合条件
fill()
使用一个固定值来填充数组
find()
返回符合传入函数条件的数组元素
findIndex()
返回符合传入函数条件的数组元素索引
includes()
判断一个数组是否包含一个指定的值
indexOf()
搜索数组中的元素,并返回它所在的位置
isArray()
判断对象是否为数组
join()
把数组的所有元素放入一个字符串
lastIndexOf()
搜索数组中的元素,并返回它最后出现的位置
pop()
删除数组的最后一个元素并返回删除的元素
push()
向数组的末尾添加一个或更多元素,并返回数组的长度
reduce()
累加(从左到右)数组中的所有元素,并返回结果
reduceRight()
累加(从右到左)数组中的所有元素,并返回结果
reverse()
反转数组中元素的顺序
shift()
删除并返回数组的第一个元素
slice()
截取数组的一部分,并返回这个新的数组
sort()
对数组的元素进行排序
splice()
从数组中添加或删除元素
toString()
把数组转换为字符串,并返回结果
unshift()
向数组的开头添加一个或多个元素,并返回新数组的长度

7.Math
Math 是 JavaScript 中的一个内置对象,其中提供了一些数学中常用的常量值和函数,用来实现一些数学中常见计算,例如计算平均数、求绝对值、四舍五入等。
var pi_val = Math.PI;                // 数学中 π 的值:3.141592653589793
var abs_val = Math.sin(-5.35);  //-5.35 的绝对值:5.35

  
属性
  
描述
E
返回算术常量 e,即自然对数的底数(约等于 2.718)
LN2
返回 2 的自然对数(约等于 0.693)
LN10
返回 10 的自然对数(约等于 2.302)
LOG2E
返回以 2 为底的 e 的对数(约等于 1.443)
LOG10E
返回以 10 为底的 e 的对数(约等于 0.434)
PI
返回圆周率 π(约等于 3.14159)
SQRT1_2
返回返回 2 的平方根的倒数(约等于 0.707)
SQRT2
返回 2 的平方根(约等于 1.414)

  
方法
  
描述
abs(x)
返回 x 的绝对值
acos(x)
返回 x 的反余弦值
asin(x)
返回 x 的反正弦值
atan(x)
返回 x 的反正切值
cbrt(x)
返回 x 的立方根
ceil(x)
对 x 进行向上取整,即返回大于 x 的最小整数
cos(x)
返回 x 的余弦值
exp(x)
返回算术常量 e 的 x 次方,即 Ex
expm1(x)
返回 exp(x) - 1 的值
floor(x)
对 x 进行向下取整,即返回小于 x 的最大整数
fround(x)
返回最接近 x 的单精度浮点数
max([x, [y,  [...]]])
返回多个参数中的最大值
min([x, [y,  [...]]])
返回多个参数中的最小值
pow(x,y)
返回 x 的 y 次幂
random()
返回一个 0 到 1 之间的随机数
round(x)
返回 x 四舍五入后的整数
sign(x)
返回 x 的符号,即一个数是正数、负数还是 0
sin(x)
返回 x 的正弦值
sqrt(x)
返回 x 的平方根
tan(x)
返回 x 的正切值
trunc(x)
返回 x 的整数部分

三、循环

常见的循环除for、while、dowhile之外,JavaScript还包含了for in 和for of。

1.For in
for in 循环是一种特殊类型的循环,也是普通 for 循环的变体,主要用来遍历对象。

JS for in 循环示例代码:
        // 定义一个对象
        var person = {"name":"Clark", "surname": "Kent", "age":"36"};
        // 遍历对象中的所有属性
        for(var prop in person) {
              ……;
        }

2.For of
for of与 forin 循环类似,也是普通 for 循环的一种变体。使用 for of 循环主要用来遍历数组。
示例代码如下:
       //定义一个数组
       vararr = ['a', 'b', 'c', 'd', 'e', 'f'];
       //使用 for of 循环遍历数组中的每个元素
       for(var value of arr) {
              ……;
}


四、定时器

1. setInterval()
JS setInterval() 函数可以定义一个能够重复执行的定时器,每次执行需要等待指定的时间间隔。语法格式如下:
setInterval(function, delay, [arg1, arg2,...]);
setInterval(code, delay);

2. clearTimeout
当使用 setTimeout() 或setInterval() 设置定时器时,这两个方法都会产生一个定时器的唯一 ID,ID 为一个正整数值,也被称为“定时器标识符”,通过这个 ID,我们可以清除 ID 所对应的定时器。
intervalID = setInterval(showTime, 1000);
clearInterval(intervalID);


五、画布canvas

js在<canvas>标签识别的画布上可以绘制图形,创建动画,设置设计实时视频处理或渲染。借助一套编程接口,用户可以在页面上绘制出漂亮的图形。

1.矩形
canvas提供了3种方法绘制矩形。
fillRect(x, y, width, height):绘制一个填充的矩形。
strokeRect(x, y, width, height):绘制一个矩形的边框。
clearRect(x, y, width, height):清除指定矩形区域,让清除部分完全透明。

2.路径
beginPath():开始路径。
closePath():闭合路径。闭合路径之后图形绘制命令又重新指向上下文。
stroke():描边路径。通过线条来绘制图形轮廓。
fill():填充路径。通过填充路径的内容区域生成实心的图形,图形自动闭合。

3.圆弧
context.arc(x,y,r,sAngle,eAngle,counterclockwise);

4.画线
MoveTo(x,y);
lineTo(x,y);

5.样式和颜色
颜色-fillStyle和strokeStyle
不透明度-globalAlpha,rgba(R,G, B, A)
线的粗细-lineWidth
端点样式lineCap。包括三种:butt、round和square,默认为butt。
连接样式lineJoin。包括三种样式:round、bevel和miter,默认值为miter。

内容较多,建议收藏下载保存,帖子转成了word方便下载保存。
学习链接分享:

各种语言的学习教程,拿走不谢
image.png

IT7000关于画布的案例程序分享:
画布_律动.gif 画布_曲线.gif 画布_时钟.gif 画布_贪吃蛇.gif
HMI官网版本:
image.png
image.png




Canvas笔记.docx

1.11 MB, 下载次数: 182

JS分享文档.docx

539.01 KB, 下载次数: 184

脚本流动文字.7z

2.14 MB, 下载次数: 241

画布案例程序.7z

4.8 MB, 下载次数: 162

售价: 2  [记录]

点评

高质量帖子,收藏了  发表于 2023-2-19 10:08
zhu
厉害  发表于 2023-2-18 08:07
感谢分享,  发表于 2022-5-18 17:13




上一篇:【发帖达人赛】一文看懂IT7000系列HMI配方应用
下一篇:7100E经常黑屏怎么办

已有 2 人打赏作者

aTwWUdyu0h 赏了楼主1水滴 工控小小白 赏了楼主50水滴
1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香! 鲜花榜单
回复 邀请回答送花

使用道具 举报

工控小小白 2022-4-11 22:57:46 | 显示全部楼层
感谢孙工分享,虽然看不懂触摸屏脚本,就是感觉写的很牛逼
回复 送花

使用道具 举报

工控小小白 2022-4-11 22:58:33 | 显示全部楼层
感谢孙工分享,虽然看不懂触摸屏脚本,就是感觉写的很厉害哦
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部