What is the operating mechanism and principle of the split () method in JavaScript? I'm a little confused by the following code?

what is the working mechanism and principle of the split () method in JavaScript? I"m a little confused by the following code?
{

console.log("xdhg-sharp-sharp".split(/-sharp/y));
// [ "xdhg" "", ""]
console.log("-sharp-sharpx".split(/-sharp/y));
// [ "", "", "x" ]
console.log("-sharpx-sharp".split(/-sharp/y));
// [ "", "x" ,""]
console.log("-sharp-sharp".split(/-sharp/y));
// [ "", "", "" ]

}
my question point:
(1) since the y modifier is also called a sticky character (the y modifier symbol implies the header matching flag ^), why can the string "xdhg-sharp-sharp" be regularly matched by /-sharp/y?
(2 what is the mechanism inside the) split () method? Is it similar to an iterator trader?
I would like to ask all of you to give me some advice as a rookie. Thank you

MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1b36911-2c039.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1b36911-2c039.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?