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

Menu