首页 > 其他分享 >HarmonyOS NEXT星河版ArkTS 语法 学习笔记

HarmonyOS NEXT星河版ArkTS 语法 学习笔记

时间:2024-05-26 21:12:45浏览次数:32  
标签:ArkTS console log 星河 number NEXT let string songs

基础练习:

console.log("你好,", "11111")
// let 变量名:类型 = 值
let title: string = '奥利奥水果'
let price: number = 21.8
let isSelect: Boolean = true
console.log(title, price, isSelect)
// 变量的改变值
title = '燕麦水果捞'

console.log('改变后的名称:', title)

// const 常量名: 类型 = 值
const PI: number = 3.1415926

console.log('派的值是:', PI)
// PI = 456

// 数组
// let 数组: 类型[] = [数据1,数据2,...]
let names: string[] = ['小红', '小明', '大强']
// let names: string[] = ['小红','小明',123] // 报错

console.log('names是', names)
console.log('name第0个元素是', names[0])

// 函数 function
function fn() {
  console.log('五角星', '☆')
  console.log('五角星', '☆☆')
  console.log('五角星', '☆☆☆')
}

fn()
fn()
console.log('fn的内存地址', fn)
console.log('fn调用', fn())

// 写一个计算价格和斤数的函数
function cal(price: number, num: number): number {
  return price * num
}

let res = cal(4, 5)
console.log('4元1斤,买了5斤,结果为:', res)
console.log('2元1斤,买了3斤,结果为:', cal(2, 3))
// console.log('2元1斤,买了3斤,结果为:',cal(2)) // 报错


// 箭头函数
// 最简洁的写法 () => {}
let star = () => {
  console.log('箭头函数的五角星', '☆')
  console.log('箭头函数的五角星', '☆☆')
}
star()

let calculator = (price: number, num: number) => {
  return price * num
}
console.log("新的函数的calculator", calculator(20, 33))

// 对象
// 是存储多个数据类型的 容器
// 而相比起数组类型,数组类型只能存同一种类型

// 1.通过interface约定对象结构类型
// 2.定义对象并使用
interface Person {
  name: String
  age: number
  weight: number
}

let obj: Person = {
  name: '小明',
  age: 18,
  weight: 50
}

console.log('创建的对象是:', obj)
console.log('创建的对象是:', obj.name, obj.age, obj.weight)
// 对象的方法
// 1.接口 定义方法,2.添加方法

interface Person2 {
  dance: () => void
  sing: (singName: string) => void
}

let ym: Person2 = { // 报错
  dance: () => {
    console.log("杨幂说:", "dance")
  },
  sing: (song: string) => {
    console.log("杨幂说:", "我来唱首歌", song)
  }
}
ym.sing('爱的供养')
ym.dance()

// 联合类型
// 比如,考试成绩,可以是100分,也可以是'A'
let judge: number | string
judge = 95
console.log('考试的评价:', judge, typeof judge)
judge = 'A'
console.log('考试的评价:', judge, typeof judge)

// 注意: 联合类型可以约定在一组范围内
let gender: 'man' | 'woman' | 'secret' = 'man'
// gender = 'abc' // 报错了
console.log('性别为', gender)


// 枚举类型,起了名字的类型,
// 1.定义常量列表
// 注意Color是内置关键字,不要重复,否则会报错
enum ThemColor {
  Red = '#ff0f29',
  Orange = '#ff7100',
  Green = '#30b30e',
}

let color: ThemColor = ThemColor.Red
console.log('设置的颜色:', color)

// 类型的转化
let money: number = 500
let money2: string = '10000'

console.log("薪资为:", money + money2)
console.log("薪资为:", money + Number(money2))

// 数组的新增
// 开头新增unshift 结尾push
let songs: string[] = ['告白气球', '七里香', '洋葱', '吻别']
// songs.unshift('彩虹')
// console.log('新的歌曲列表:',songs)
// songs.push('双结棍')
// console.log('歌曲列表结尾:',songs)
// 删除项 shift 开头删,pop 结尾删除

// songs.shift()
// console.log('删除开头后的歌曲列表:',songs)
//
// songs.pop()
// console.log('删除结尾后的歌曲列表:',songs)

// split
songs.splice(1, 0, '新增1首')
console.log('splice的用法', songs)

songs.splice(1, 1, '替换效果1首') // 替换(删除又新增)
console.log('splice的用法', songs)

// 语句的概念
// 语句: 一段可以执行的代码,是一个行为(num = a+ b)            强调:行为
// 表达式: 可以被求值的代码,并将其计算出一个结果 (1+1,3*5,,3>2) 强调:结果


// 三元表达式
// 语法: 条件? 条件成立执行的表达式: 条件不成立执行的表达式
let num1: number = 5
let num2: number = 10
// 比较两个结果的值

let result: number = num1 > num2 ? num1 : num2
console.log('结果为',result)


// 基于接口,构建对象数组
let stuArr: Person[] = [
  {name:'张三',age:18,weight:20},
  {name:'李四',age:20,weight:23},
  {name:'王五',age:20,weight:23},
]
// 日志打印用JSON.stringify(复杂类型)  对象/数组
console.log('学生数组',JSON.stringify(stuArr))
// for遍历
for (let item of stuArr){
  console.log('对象是',JSON.stringify(item))
}

for (let i:number=1;i < 10;i++){// 注意这个;
  console.log('数字为',i)
}


//
@Entry
@Component
struct Index { //结构体
  @State message: string = 'Hello tutu'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('50%')

      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('50%')
    }
    .height('100%')
  }
}

ForEach语法:

// ForEach(arr,(item,index) => {})
@Entry
@Component
struct Index { //结构体
  @State titles: string[] = ['产品1','产品2','产品3','产品4','产品5']

  build() {
    Column(){
      // ForEach(arr,(item,index) => {})
      ForEach(this.titles,(item:string,index:number) => {
        Text(`${index} -- > ${item}`)
        .fontSize(24)
        .fontWeight(700)
        .fontColor(Color.Orange)
        .padding(15)
        .width('100%')
      })
    }
  }
}

 

 

====

黑马视频:

https://www.bilibili.com/video/BV14t421W7pA?p=69&vd_source=6176e79b66461eb74da787cb8321925b

标签:ArkTS,console,log,星河,number,NEXT,let,string,songs
From: https://www.cnblogs.com/liqi175/p/18214282

相关文章

  • ChatGPT-Next-Web:Github开源+Vercel免费+API 快速部署使用
    ChatGPT-Next-Web:Github开源+Vercel免费+API快速部署使用文章目录ChatGPT-Next-Web:Github开源+Vercel免费+API快速部署使用导语:需要用到的链接汇总1、github项目直达地址2、vercel服务器直达地址3、三方API获取一、Github项目`star`+Vercel部署1、访问进去G......
  • 前端服务端React(Next.js)、Vue(Nuxt.js)、Angular(Universal)渲染搭建和开发案例
    前端服务端渲染(Server-SideRendering,简称SSR)是一种Web开发技术,它允许服务器动态生成HTML内容,然后将其发送到客户端,客户端再将这些HTML内容渲染成页面。这种方式可以提高首屏加载速度,改善SEO,以及提供更好的用户体验。前端服务端渲染搭建步骤:选择框架:选择支持服务端渲染......
  • Google Cloud Next ’24 Recap 开启 AI 新篇章,Cloud Ace 独立解决方案助力企业降本增
    北京时间2024年4月26日,CloudAce云一受邀参与GoogleCloudNext’24Recap在深圳的线下活动,并设置展位。本次活动主要聚焦于Next’24(LasVegas)成果展示,给中国客户和开发者深入解读GoogleCloudNext’24大会上Gemini、VertexAI、BigQuery等产品服务的重要更新,展示了......
  • Next.js + Mongodb CURD
    环境Next.js14React18Mongodb前言花了两周时间学习了Next.js,自己做了个demo,尝试了下服务器端渲染,客户端渲染,给人的感觉就是又像回到了asp.netMVC时代,需要在页面初次加载时显示的数据可以使用ViewModel来解决,需要在页面上有交互、异步刷新的业务可以使用ajax来解决。......
  • x64 环境下_findnext() 函数报错——0xC0000005: 写入位置 0xFFFFFFFFDF47C5A0 时发生
    CSDN搬家失败,手动导出markdown后再导入博客园最近在搞单目相机位姿估计,相机标定参考了【OpenCV3学习笔记】相机标定函数calibrateCamera()使用详解(附相机标定程序和数据)提供的代码。/*@paramFile_Directory为文件夹目录@paramFileType为需要查找的文件类型@param......
  • 鸿蒙HarmonyOS Next应用开发需要学什么语言
    鸿蒙HarmonyOSNext应用开发需要学什么语言?鸿蒙HarmonyOSNext作为华为自主研发的操作系统,其在应用开发方面有着独特的需求和优势。对于想要从事鸿蒙应用开发的开发者来说,掌握合适的编程语言是至关重要的。本文将详细探讨鸿蒙HarmonyOSNext应用开发需要学习的语言,帮助开发者更好......
  • 【HarmonyOS NEXT】获取卸载APP后不变的设备ID
    1.背景在HarmonyOSNEXT中,想要获取设备ID,有3种方式UDID:deviceinfo.udid,仅限系统应用使用AAID:aaid.getAAID(),然而卸载APP/恢复设备出厂设置/后会发生变化OAID:identifier.getOAID,同一台设备上不同的App获取到的OAID值一样,但是用户如果关闭跟踪开关,该应用仅能获取到全0的OAID......
  • next-元数据创建、更新 SEO 优化
    在创建Next.js项目时,根页面会自动生成一个metadata对象,其中包含标题和描述等关键信息。每当页面被访问时,这个metadata对象会被读取并应用到HTML的默认配置中,确保页面的基本信息得以正确展示。在存在单独页面需要采用独特的标题或描述时,这些特定页面的元数据将优先于根元素所设定的......
  • next-route
    在目录结构中,我们精心创建的每一个文件最终都会经过处理,转化为相应的页面路由。然而,值得注意的是,某些特殊文件格式在生成过程中并不会被当作路由路径来处理。app|-authloginpage.tsxpasswordpage.tsx//最后生成的路由路径//·localhost:3000/aut......
  • F5 BIG-IP Next Central Manager SQL注入漏洞
    F5BIG-IPNextCentralManagerSQL注入漏洞漏洞描述:该漏洞允许未经授权的攻击者通过网络远程执行恶意SQL语句,该漏洞具体存在于对API接收的参数进行处理时,没有正确的验证和过滤用户输入。Fofa:title="BIG-IPNext|CentralManager"POC:importstringimportrequestsi......