5.QML中的JavaScript(3)- 对象

原创
2022-12-01
4562
1

1. Object

Object类为所有JavaScript类的基类
Object具有如下属性:

  • constructor: 指向创建对象的函数,对于Object类,它指向object()函数。
  • prototype: 对该对象的对象原型的引用。

Object就有的方法如下:

  • hasOwnProperty(property): 判断对象是否有某个属性。
  • isPrototype(object): 判断对象是否为另一个对象的原型。
  • propertyIsEnumerable(property): 判断给定属性是否可用for…in语句进行枚举。
  • toString():返回对象的字符串表示。
  • valueof(): 返回最适合对象的原始值。

Object可以直接为它的属性赋值,若属性不存在则创建该属性,并赋值;也可以直接赋值方法;也可以使用数组下标的方法获取属性的值。下面是一个简单的示例:

var object = new Object
object.name = 'Douzhq'
object.year = '26'
object.getSex = function getSex() {
    return 'man'
}

console.log(object.name, object["year"])
console.log(object.getSex())

运行结果:
qml: Douzhq 26
qml: man


2. String

想要实例化String类型,可以使用new关键字也可以为变量直接赋值

var str = new String('Hello JavaScript')
var str2 = 'Hello JavaScript'

String的主要属性和方法如下:

String的主要属性和方法
属性/方法名描述
length返回字符串的长度
charAt()返回指定索引位置的字符,也可以使用[index]方式
indexOf()从字符串的开头索引字符串,找不到返回-1
lastIndexOf()从字符串的结尾索引字符串,找不到返回-1
localeCompare() 比较字符串,也可以使用>、<、==比较
concat()字符串拼接,也可以使用+拼接字符串
slice(startIndex, endIndex)字符串提取,从startIndex到endIndex
substring()字符串提取,与slice不同点,slice()遇到负数, 会从尾部倒数,如slice(-3)提取倒数的3个字符串, 而substring()遇到负数会当成0处理。还有一点就是substring()会把较小的参数作为其实位置, 如substring(1, 3)substring(3, 1)是相同的
substr(index, count)字符串提取,第一个参数为起始位置,第二个为个数
toLowerCase()转换为小写字母
toUpperCase()转换为大写字母
replace()字符串替换
arg()QML扩展的方法,效果同QString.arg()

下面是关于字符串处理的示例 :

var myString = 'Hello %1!'
myString = myString.arg('JavaScript')

console.log(myString)
console.log(myString.length, myString.charAt(1))
console.log(myString.indexOf("Java"))
console.log(myString.concat(" I Love QML!"))
console.log(myString.slice(1, -1))
console.log(myString.toLowerCase())
console.log(myString.toUpperCase())
console.log(myString.replace('JavaScript', 'Python'))

运行结果如下:
qml: Hello JavaScript!
qml: 17 e
qml: 6
qml: Hello JavaScript! I Love QML!
qml: ello JavaScript
qml: hello javascript!
qml: HELLO JAVASCRIPT!
qml: Hello Python!


3. Array

Array可以定义动态数组,大小可以动态变化。
数组的创建

var arr = new Array() // 创建一个空数组
var arr2 = new Array(5) // 创建一个有5个元素的数组
var arr3 = new Array(1, 2, 3) // 创建一个元素为1、2、3的数组
var arr4 = [1, 2, 3] // 创建一个元素为1、2、3的数组

可以使用下标的方式获取或者设置数组的值,也可以使用下标得方式设置一个超出索引界限的值。

var array = [1, 'Hello', true]
var item1 = array[1]  // 值为'Hello'
array[5] = 12.5
console.log(array, item1)

程序运行结果:
qml: [1,Hello,true,,,12.5] Hello

Array的主要属性和方法如下:

Array的主要属性和方法
属性/方法名描述
length获取数组的长度
push()向数组尾部插入一个或多个元素
pop()删除并返回数组尾部的元素
shift()删除并返回数组第一个元素
unshift()向数组的开始添加一个元素并返回数组的长度
sort()对数组中的元素排序并返回数组的引用
sortby()指定一个大小比较的函数进行排序
join()将数组中的元素转为字符串并添加间隔
toString()将数组中的元素转为字符串
concat()可以连接两个或多个数组,它不改变现有数组的值,返回一个新数组
slice()分割数组

下面是关于数组的一个简单示例:

var array = [22, 44, 12.5, 32, 55, 'Hello', 'JavaScript', 'Python', 'QML']

console.log(array.length)

array.push([88, 16])
console.log(array)

array.pop()
console.log(array)

array.shift()
console.log(array)

array.unshift([10])
console.log(array)

array.sort()
console.log(array)

console.log(array.join(';'))

var tempArray = array.slice(1, -1)
console.log(tempArray)

运行结果
qml: 9
qml: [22,44,12.5,32,55,Hello,JavaScript,Python,QML,88,16]
qml: [22,44,12.5,32,55,Hello,JavaScript,Python,QML]
qml: [44,12.5,32,55,Hello,JavaScript,Python,QML]
qml: [10,44,12.5,32,55,Hello,JavaScript,Python,QML]
qml: [10,12.5,32,44,55,Hello,JavaScript,Python,QML]
qml: 10;12.5;32;44;55;Hello;JavaScript;Python;QML
qml: [12.5,32,44,55,Hello,JavaScript,Python]

不会飞的纸飞机
扫一扫二维码,了解我的更多动态。

下一篇文章:6.QML中的JavaScript(4)- 对象2